Дополнить выборку при группировке
Есть задачка по генерации отчетов.
Есть таблица orders (в реальности таблица содержит еще бизнес логику):
id | status | created_at
Я группирую заказы по status, так как мне нужна статистика по каждому статусу и плюсом еще забираю кучу данных. Результат почти меня устраивает, но например если пользователь выберет определенный период, то некоторых статусов нет в заданном периоде.
Есть ли какая-то возможность дополнить остальными статусами выборку? Условно заранее проинициализировать все статусы, чтобы не попавшие в выборку не исчезали совсем.
Mariadb 10
Ответы (1 шт):
Следует получить список статусов, а потом пристыковать к нему данные:
SELECT statuslist.status, orders.another_columns
FROM ( SELECT DISTINCT status
FROM orders ) statuslist
LEFT JOIN orders ON statuslist.status = orders.status
AND orders.created_at BETWEEN ...
...
С другой стороны, раз статусы сплошь и рядом повторяются - почему они не в отдельной таблице?