2017-01-11 5 views
-1

У меня есть SQL заявлениеКак подсчитать количество результатов при многократной группе

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

Я заинтересован в VDATE. Могут быть записи, имеющие пустое VDATE и, возможно, больше, чем VDATE.

Мой идеальный результат - это список, в котором есть только один результат из предыдущего выбора. AND VDATE имеет значение NULL.

Таким образом, для следующего набора данных

ID, ЛИЦО, СОСТОЯНИЕ, VDATE, граф (человека), граф (VDATE)

1234, 9000, НД, 2014-04-24, 1, 1

1235, 9000, ND,, 2, 2

1236, 9001, CA,, 2, 2

1237, 9002, CA,, 2, 2

1238, 9002, Н.В., 2, 2

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

Я хотел бы 1236, 1237 и 1238 вернулся

+1

Редактировать свой вопрос и предоставить образцы данных и желаемые результаты. –

+0

См. Http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple-sql- запрос – Strawberry

ответ

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; 
Смежные вопросы