我有一个Orders表,其中包含此信息
id | phone_number | Order_Date_Time
_________________________________________
1 +18001122334 2020-09-01 12:30:45
_________________________________________
2 +18001122335 2020-09-02 12:31:44
__________________________________________
3 +18001122334 2020-09-03 10:10:15
__________________________________________
4 +18001122334 2020-09-03 11:10:15
我如何才能有一个查询来返回上周或自定义间隔的每日订单计数。例如,订单计数从2020-09-01到2020-09-03
_____________________________________________________
Phone_number | 2020-09-01 | 2020-09-02 | 2020-09-03
_____________________________________________________
+18001122334 1 NULL 2
___________________________________________________
+18001122335 NULL 1 NULL
对于固定的日期列表,可以进行条件聚合:
select phone_number,
sum(case when date(order_date_time) = '20200901' then 1 else 0 end) cnt_20200901,
sum(case when date(order_date_time) = '20200902' then 1 else 0 end) cnt_20200902,
sum(case when date(order_date_time) = '20200903' then 1 else 0 end) cnt_20200903
from orders
where order_date_time >= '20200901' and order_date_time < '20200904'
group by phone_number