所以我想说这个表中有这些行
表名:MYTABLE
ID | NUMBER | FK_ID
1 | 0 | 26
2 | 0 | 26
3 | 1 | 26
4 | 0 | 27
5 | 1 | 27
现在我想只过滤出同一个FK_ID下的行,并且其中包含两个或更多NUMBER 0。
因此,例如,如果我在这里应用此过滤器,我只会看到一行对应于FK_ID 26,因为它的MYTABLE数据中有两个NUMBER 0。
这甚至可以做或者我应该用我的编程语言处理整个数据而不是像DB那样过滤它。
答案 0 :(得分:2)
SELECT FK_ID ,
COUNT(DECODE(NUMBER ,0,1))
FROM TEST_DATA
GROUP BY FK_ID
HAVING COUNT(DECODE(NUMBER ,0,1)) >= 2
答案 1 :(得分:1)
此查询是否适合您?
SELECT
FK_ID
FROM MYTABLE
WHERE NUMBER = 0
GROUP BY FK_ID
HAVING COUNT(*) >= 2;
另外,请考虑重命名NUMBER列,因为NUMBER是reserved word in Oracle。