https://leetcode.com/problems/sales-analysis-iii/description/ Easy

Условие

Дана таблица Product со столбцами:

column type description
product_id int идентификатор продукта
product_name varchar название продукта
unit_price int цена за единицу

и таблица Sales со столбцами:

column type description
seller_id int идентификатор продавца
product_id int идентификатор продукта (FK на Product)
buyer_id int идентификатор покупателя
sale_date date дата продажи
quantity int количество проданных единиц
price int итоговая цена за продажу

Напишите SQL-запрос, который возвращает product_id и product_name тех продуктов, которые продавались только весной 2019 (между '2019-01-01' и '2019-03-31' включительно).

Решение

SELECT
  p.product_id,
  p.product_name
FROM Product AS p
JOIN Sales AS s
  ON p.product_id = s.product_id
GROUP BY
  p.product_id,
  p.product_name
HAVING
  SUM(CASE
        WHEN s.sale_date < '2019-01-01'
          OR s.sale_date > '2019-03-31'
        THEN 1
        ELSE 0
      END) = 0;