使用from语句过滤数据

时间:2014-07-30 10:33:20

标签: sql database oracle oracle-sqldeveloper

所以我想说这个表中有这些行

表名: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那样过滤它。

2 个答案:

答案 0 :(得分:2)

SELECT FK_ID , 
COUNT(DECODE(NUMBER ,0,1)) 
FROM TEST_DATA 
GROUP BY FK_ID 
HAVING COUNT(DECODE(NUMBER ,0,1)) >= 2

在这里小提琴:http://sqlfiddle.com/#!4/44d70/4

答案 1 :(得分:1)

此查询是否适合您?

SELECT 
    FK_ID
FROM MYTABLE
WHERE NUMBER = 0
GROUP BY FK_ID
HAVING COUNT(*) >= 2;

另外,请考虑重命名NUMBER列,因为NUMBER是reserved word in Oracle