Redshift - определение количества раз, когда флаг появляется для определенного идентификатора - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть некоторые данные о продажах, которые показывают, был ли выставлен счет для клиента.Столбец, помеченный bill_generated, возвращает «Y», если счет был сгенерирован, иначе его бланк.Я пытаюсь найти список клиентов, для которых был сгенерирован хотя бы один счет.Для каждого cust_id может быть несколько строк, как показано ниже:

cust_id, bill_generated
001,NULL
001,Y
002,NULL
002,NULL
003,Y

Может кто-нибудь посоветовать по этому поводу.Я использую Redshift DB.Спасибо ..

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

вы можете использовать связанный подзапрос

select * from t
           where exists (select 1 from t t1 
             where t1.bill_generated='Y' and t1.cust_id=t.cust_id
            )
0 голосов
/ 26 сентября 2018

Попробуйте ниже, используя group by и имея cluse

select cust_id from tablename
group by cust_id 
having sum(case when bill_generated is null then 0 else 1 end)=1
...