对具有一个值的行的SQL查询在多于一列中重复

时间:2013-08-15 11:11:52

标签: sql oracle11g duplicates

我的表格如下:

enter image description here

我想获得所有的密钥= 1超过1次的DeviceID。与设备ID = 3类似,有两行,其中key = 1,相同于4.获得该结果的查询是什么?

我尝试了很多但找不到任何解决方案。 group byhaving条款似乎无法实现。

3 个答案:

答案 0 :(得分:1)

您应该可以使用GROUP BYHAVING来获取包含多行的DeviceIds

select deviceid
from yourtable
where key = 1
group by deviceid
having count(key) > 1

请参阅SQL Fiddle with Demo

答案 1 :(得分:0)

尝试这样的事情:

SELECT DeviceID
FROM YourTable 
WHERE key = 1
GROUP BY DeviceID
HAVING COUNT(*) > 1

答案 2 :(得分:0)

使用此:
SQL Fiddle

SELECT DevID
FROM Devices
WHERE KeyID = 1
GROUP BY DevID
HAVING COUNT(*) > 1;