@Javilingys

Найти купивших, меньше всего товаров в PostgreSQL?

Ребят, помогите с запросом. Я новичок в бд.
Есть 3 таблицы:

Customer: id, name, lastname;
Product: id, label, price;
Customer_Product: customer_id, product_id, date;

Запрос: Поиск покупателей, купивших меньше всего товаров.

У меня получается только так:

SELECT c.name, c.lastname FROM customer c INNER JOIN customer_product cp ON cp.customer_id = c.id GROUP BY c.name, c.lastname HAVING COUNT(cp.product_id) < 2 limit 3;

Т.е., работает правильно, но только, потому что я знаю, что у меня в таблице покупатель купил 1 продукт - это самый минимальный, остальные сделали покупок больше, чем 3. Но если я добавлю к нему еще покупок, то ествественно не найдет.. Т.е. вместо двойки надо что-то подставить, а не знаю что, помогите.. Быть может запрос вообще не так составляю?
  • Вопрос задан
  • 79 просмотров
Решения вопроса 1
yellow79
@yellow79
Senior Software Engineer
Выбирать надо count(*), name, lastname из Customer_Product объединять с Customer через left join. Группировать по customer_id и отсортировать по count(*).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы