Как получить заказы из таблицы, удовлетворяющие различным условиям?

Возможно ли одним запросом в SQL получить client_id, count1 и count2, где count1 - количество заказов клиента с ценой меньше 1000, а count2 - количество заказов клиента с ценой больше 1000? Я знаком со SQL недостаточно хорошо и не уверен, как сделать это. Если у вас есть идеи или советы, пожалуйста, поделитесь.
  • 19 сентября 2023 г. 20:26
Ответы на вопрос 1
Да, возможно сделать это одним запросом. Ниже приведен пример SQL-запроса:

SELECT client_id, 
       SUM(CASE WHEN price < 1000 THEN 1 ELSE 0 END) AS count1, 
       SUM(CASE WHEN price > 1000 THEN 1 ELSE 0 END) AS count2
FROM orders
GROUP BY client_id

В этом запросе мы используем функцию SUM() и предложение CASE, чтобы подсчитать количество заказов клиентов, удовлетворяющих различным условиям. Предложение CASE вычисляет 1, если цена заказа соответствует условию, иначе 0. Затем функция SUM() просуммирует эти значения по каждому клиенту.

После выполнения этого запроса вы получите результат, содержащий client_id, count1 и count2 для каждого клиента.
Похожие вопросы