@Rogerg

Как найти подгруппу по определенному условию?

Как в приведенной таблице 'store',
После того как данные были сгруппированы по order найти группу
в которой к item было применино несколько тольк PROM, это должны быть группы как order 33.
я пытался сделать через group by
select order, item, count(discount) from store
where discount='PROMO'
group by order, item

Но результат выдает еще и ордер 11, что не совсем то что мне нужно
order item discount
11. item1 PROMO
11 item1 PROMO
11. item1 MARKDOWN
11. item2 PROMO
22. item2. null
22. item3 MARKDOWM
22. item3. null
33 item1. PROMO
33 item1. PROMO
33. item1. PROMO
  • Вопрос задан
  • 34 просмотра
Пригласить эксперта
Ответы на вопрос 1
rozhnev
@rozhnev Куратор тега SQL
Fullstack programmer, DBA, медленно, дорого
SELECT id
FROM tbl
GROUP BY id
HAVING MIN(discount) = 'PROMO' AND MAX(discount) = 'PROMO'


https://sqlize.online/sql/mysql57/df9b36462183713b...

select `order`, item, count(discount) 
from store
group by `order`, item
having count(discount) = count(case when discount='PROMO' then 1 end)


https://sqlize.online/sql/mysql57/98a774afca47cc81...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы