Создайте еженедельный отчет за последние 7 дней в Mysql


Создайте еженедельный отчет за последние 7 дней в Mysql

04.11.2020 08:39:08 Просмотров 7 Источник

Я хочу получить отчет из моей таблицы eco_orders о том, сколько заказов я получаю в день за последние 7 дней. Я получил результат с помощью ниже sql, и это абсолютно нормально. но проблема в том что я хочу включить количество дней без заказа с нулем

SELECT DAYNAME(created_at) AS DAY,  count(*) 
FROM `eco_orders` 
WHERE created_at >= DATE(NOW()) - INTERVAL 7 DAY 
GROUP BY DAY;

my output
+-----------+----------+
| DAY       | count(*) |
+-----------+----------+
| Thursday  |        1 |
| Wednesday |        2 |
+-----------+----------+

expected output
+-----------+----------+
| DAY       | count(*) |
+-----------+----------+
| Saturday  |        0 |
| Sunday    |        0 |
| Monday    |        0 |
| Tuesday   |        0 |
| Wednesday |        2 |
| Thursday  |        1 |
| Friday    |        0 |
+-----------+----------+
У вопроса есть решение - Посмотреть?

Ответы - Создайте еженедельный отчет за последние 7 дней в Mysql / Generate a last 7 days weekly report in Mysql

Является ответом!
Fahmi

04.11.2020 08:44:50

Вы можете попробовать этот вариант -

select t.d,cnt from
(
select 'Saturday' as d union all
select 'Sunday' union all
select 'Monday' union all
select 'Tuesday' union all
select 'Wednesday' union all
select 'Thursday' union all
select 'Friday'
)t left join
(
SELECT DAYNAME(created_at) AS DAY,  count(*) as cnt 
FROM `eco_orders` 
WHERE created_at >= DATE(NOW()) - INTERVAL 7 DAY 
GROUP BY DAY
)t1 on t.d=t1.day
Помочь в развитии проекта:
Закрыть X