比较oracle sql中单个表的两个字段

时间:2013-05-09 06:59:48

标签: sql oracle plsql

我有一个这样的表,我需要编写一个sql查询来比较和验证记录是否正确。例如:dhoni在第2列中没有1,就像每个玩家都有自己的号码一样,我需要编写一个代码来验证没有玩家为不止一个玩家分配相同的号码。并且需要检查玩家是否已经分配了他的天气。

+-------+-------+
|column1|column2|
+-------+-------+
|dhoni  |no1    |
|sachin |no2    |
|dravid |no3    |
|dhoni  |no1    |
+-------+-------+

注意: 写一个查询来验证表数据ex:检查dhoni应该总是必须得到第2列中的no1,不管重复的记录和顺序如何,同样明智地需要检查其他玩家,不管表中是否存在数据..只是需要验证的东西..

2 个答案:

答案 0 :(得分:1)

找一个有多个号码的用户

select column1 from table group by column1 having count(*) > 1;

使用多个用户查找相同的no。

select column2 from table group by column2 having count(*) > 1;

答案 1 :(得分:0)

请尝试:

SELECT 
    column2, COUNT(*) TotalCount
FROM YourTable
GROUP BY column2
HAVING COUNT(*) > 1
ORDER BY COUNT(*) DESC

其中TotalCount返回多次分配的编号。 或

select * From(    
  SELECT distinct Column1, Column2, COUNT(*) over (partition by Column2) TotalCount
  FROM YourTable
)x 
where TotalCount>1