количество нулей в окне - PullRequest
0 голосов
/ 19 февраля 2019

Мне нужно получить количество пустых групп по идентификатору, но исключая месяц и объем продаж в группе по

выборкам

 id     custname    reportdate   sales
 1        xx        31-JAN-17    1256
 1        xx        31-MAR-17    <null>
 1        xx        30-JUN-17    5678
 1        xx        31-DEC-17    <null>
 1        xx        31-JAN-18    1222
 1        xx        31-MAR-18    <null>
 1        xx        30-JUN-18    5667
 1        xx        31-DEC-18    7890
 2        yy        31-JAN-17    1223
 2        yy        31-APR-17    3435
 2        yy        30-JUN-17    <null>
 2        yy        31-DEC-17    4567
 2        yy        31-JAN-18    5678
 2        yy        31-APR-18    <null>
 2        yy        30-JUN-18    <null>
 2        yy        31-DEC-18    2345

что мне нужно в качестве вывода

 id     custname    reportdate   sales  count(Sales nulls)
 1        xx        31-JAN-17    1256     2
 1        xx        31-MAR-17    <null>   2
 1        xx        30-JUN-17    5678     2
 1        xx        31-DEC-17    <null>   2
 1        xx        31-JAN-18    1222     1
 1        xx        31-MAR-18    <null>   1
 1        xx        30-JUN-18    5667     1
 1        xx        31-DEC-18    7890     1
 2        yy        31-JAN-17    1223     1
 2        yy        31-APR-17    3435     1 
 2        yy        30-JUN-17    <null>   1 
 2        yy        31-DEC-17    9643     1
 2        yy        31-JAN-18    5678     2
 2        yy        31-APR-18    <null>   2
 2        yy        30-JUN-18    <null>   2
 2        yy        31-DEC-18    2345     2

Как видите, у меня несколько лет, и мне нужен раздел по идентификатору и году, НЕ МЕСЯЦ

1 Ответ

0 голосов
/ 19 февраля 2019

Использование выражения case в оконной функции count.

select t.*,count(case when sales is null then 1 end) over(partition by id) as null_cnt_per_id
from tbl t
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...