SQL запрос количества заказов - PullRequest
0 голосов
/ 06 мая 2020

У меня есть две таблицы, customers и orders, и я хочу получить количество заказов, сделанных каждым клиентом.

Я пробовал

SELECT orders.order_id, customers.customer_id, 
FROM customers
INNER JOIN orders ON orders.customer_id  = customers.customer_id

, но не могу подсчитать количество заказов

1 Ответ

1 голос
/ 06 мая 2020

Вы описываете агрегирование:

SELECT c.customer_id, count(*) no_orders
FROM customers c 
INNER JOIN orders o ON o.customer_id = c.customer_id
GROUP BY c.customer_id

Если вам также нужны клиенты, у которых нет заказов, используйте вместо этого LEFT JOIN или коррелированный подзапрос:

SELECT
    c.customer_id,
    (SELECT COUNT(*) FROM orders o WHERE o.customer_id = c.customer_id) no_orders
FROM customers c
...