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

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

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

0
Kevin Nash 26 Сен 2018 в 10:29

2 ответа

Лучший ответ

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

select * from t
           where exists (select 1 from t t1 
             where t1.bill_generated='Y' and t1.cust_id=t.cust_id
            )
1
Zaynul Abadin Tuhin 26 Сен 2018 в 07:34

Попробуйте ниже, используя группу по и имеющую предложение

select cust_id from tablename
group by cust_id 
having sum(case when bill_generated is null then 0 else 1 end)=1
2
Fahmi 26 Сен 2018 в 07:38