如何计算多个组中的结果数

时间:2017-01-11 17:03:49

标签: mysql sql group-by

我有一个SQL语句

SELECT 
    ID
  , PERSON
  , STATE
  , VDATE
  , count(PERSON)
  , count(VDATE) 
from myTable  
group by 
    PERSON
  , STATE
  , VDATE;

我对VDATE很感兴趣。可能有记录的VDATE为空白且可能超过VDATE。

我的理想结果是一个列表,其中只有一个结果来自前一个选择AND VDATE为空。

因此对于以下数据集

ID,PERSON,STATE,VDATE,count(PERSON),count(VDATE)

1234,9000,ND,2014-04-24,1,1

1235,9000,ND ,, 2,2

1236,9001,CA ,, 2,2

1237,9002,CA ,, 2,2

1238,9002,NV ,, 2,2

1239,9003,MD,2014-04-24,2,2

我希望返回1236,1237和1238

1 个答案:

答案 0 :(得分:0)

嗯,这可能就是你所描述的:

select ID, PERSON, STATE, VDATE, count(PERSON), count(VDATE) 
from myTable  
where VDATE IS NOT NULL
group by PERSON, STATE, VDATE
UNION ALL
select NULL, NULL, NULL, NULL, count(PERSON), 0
from myTable
where VDATE IS NULL;