У меня есть 2 таблицы, временных рядов и заказов
таймсерия
+------------+
| datetime |
+------------+
| 2018-11-01 |
| 2018-11-02 |
| 2018-11-03 |
+------------+
Заказы
+------------+-------------+----------+
| datetime | customer_id | order_id |
+------------+-------------+----------+
| 2018-11-01 | 1 | 1 |
| 2018-11-02 | 1 | 2 |
| 2018-11-03 | 2 | 3 |
+------------+-------------+----------+
Я бы хотел получать количество заказов для каждого клиента в день.
Ожидаемые результаты:
+------------+-------------+--------------+
| datetime | customer_id | number_order |
+------------+-------------+--------------+
| 2018-11-01 | 1 | 1 |
| 2018-11-02 | 1 | 1 |
| 2018-11-03 | 1 | 0 |
| 2018-11-01 | 2 | 0 |
| 2018-11-02 | 2 | 0 |
| 2018-11-03 | 2 | 1 |
+------------+-------------+--------------+
Я попытался LEFT JOIN, но он не возвращает все временные ряды для всех клиентов
SELECT datetime, customer_id, COUNT(order_id) as number_order
FROM timeseries
LEFT JOIN orders
ON timeseries.datetime = orders.datetime
GROUP BY datetime, customer_id
ORDER BY datetime, customer_id
>> Result
+------------+-------------+--------------+
| datetime | customer_id | number_order |
+------------+-------------+--------------+
| 2018-11-01 | 1 | 1 |
| 2018-11-02 | 1 | 1 |
| 2018-11-03 | 2 | 1 |
+------------+-------------+--------------+
Я понимаю, что только левое соединение обеспечивает возврат всех строк в таблице timeseries
, но мне нужны все строки в таблице timeseries
с каждым customer_id.
Спасибо за помощь!