分组和在哪里一起?

时间:2013-08-17 06:18:29

标签: mysql sql

我有以下表格......

        ID      awaiting    approve decline      
        100       1         0         0     
        100       0         0         1     
        102       1         0         0     
        103       0         1         0     
        104       0         1         0     
        104       0         1         0     
        106       1         0         0     
        107       0         1         0     
        107       1         0         0     
        107       1         0         0

从上表中我想得到的是,如果ID的数量多于一次列出,其中一个ID或两个或所有ID等待= 1?计算这些ID符合上述条件。

和我需要的另一个查询是,其中,如果ID仅列出且只有一次且等待= 1;

请帮忙......

1 个答案:

答案 0 :(得分:7)

第一

SELECT COUNT(*) total
  FROM
(
  SELECT id
    FROM Table1
   GROUP BY id
  HAVING COUNT(*) > 1
     AND MAX(awaiting = 1) > 0
) q

第二

SELECT COUNT(*) total
  FROM
(
  SELECT id
    FROM Table1
   GROUP BY id
  HAVING COUNT(*) = 1
     AND MAX(awaiting = 1) > 0
) q

这是 SQLFiddle 演示