我有一张这样的表:
ID | AGE
--------
1 | 27
2 | 24
1 | 25
4 | 25
1 | 25
5 | 25
5 | 25
...|...
正如您所看到的,ID和AGE并不是唯一的(第二个ID是唯一的,但这与此无关)。
我想返回具有多个特定值的所有不同ID:例如,计算具有多个AGE = 25的所有ID;在上表中,这应该产生[1,5],(ID = 4不计算因为25只发生一次; ID = 1且ID = 5 IS包括因为25在AGE中多次出现)。
基本上我想要的无效SQL:
SELECT DISTINCT id FROM table WHERE count(AGE = 25) > 1
不幸的是,count(AGE = 25)无效。我如何在SQL中写出来?
答案 0 :(得分:3)
你想要这样的东西吗?
SELECT
ID, COUNT(ID)
FROM table
WHERE Age = 25
GROUP BY ID
HAVING COUNT(ID) > 1