splincodewd
@splincodewd
Developer

Как сделать проивзодительную SQL-выборку?

Есть таблица заказов, состоящая из полей order_id (номер заказа), client_id (идентификатор клиента), order_date (дата создания заказа).

Надо получить список клиентов, которые совершили более 3 заказов, но при этом ни одного заказа за последний месяц. Подумайте над наиболее производительным решением (не обязательно в один SQL-запрос). Результирующая таблица должна содержать идентификатор клиента, номер и дату его последнего заказа.

Составил просто таблицу: sqlfiddle.com/#!9/e9e838/1
Но запрос так и не понял, как правильно составить, можете объяснить?

Я так понял, нужно в выборке искать где clinet_id > 3 раз встречается, а как по дате тогда?
  • Вопрос задан
  • 92 просмотра
Решения вопроса 1
SELECT
  client_id,
  client_name,
  order_date,
  count(*) as counts
FROM
  OrderRock
WHERE
  order_date>(NOW()- interval 1 month)
HAVING count(*) >=3
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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