【问题标题】:Show the orders sum per day T-SQL显示每天的订单总和 T-SQL
【发布时间】:2021-01-14 03:00:57
【问题描述】:

我有一个包含此信息的订单

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

【问题讨论】:

  • 您需要实现动态数据透视。

标签: sql-server tsql datetime count pivot


【解决方案1】:

对于固定的日期列表,可以进行条件聚合:

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

【讨论】:

    猜你喜欢
    • 2010-09-24
    • 1970-01-01
    • 2010-11-08
    • 1970-01-01
    • 2018-08-29
    • 1970-01-01
    • 1970-01-01
    • 2013-12-17
    • 1970-01-01
    相关资源
    最近更新 更多