分组和在哪里一起?

MR.*_*net 1 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
Run Code Online (Sandbox Code Playgroud)

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

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

请帮忙....

pet*_*erm 7

第一

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

第二

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

这是SQLFiddle演示