【问题标题】:How to fix mySQL query to find all dates of month mapped with total Count for each date including zeros?如何修复 mySQL 查询以查找每个日期的总计数映射的所有月份日期,包括零?
【发布时间】:2019-07-03 22:57:45
【问题描述】:

我有一个带有时间戳日期列的 orders 表。 我想计算每个日期下的订单数量,包括没有下订单的日期为零,如下所示:

TotalOrders------ 日期

12----------------- 01/02/2019

0----------------- 02/02/2019

7-------------------- 03/02/2019

0----------------- 04/02/2019

4------- 05/02/2019

0----------------- 06/02/2019

我在这里搜索并得到了一个解决方案:

选择 COUNT(o.OrderID) AS TotalOrders, a.date

from (select date_add('2019-07-01', INTERVAL n5.num*10000+n4.num*1000+n3.num*100+n2.num*10+n1.num DAY ) 作为日期

from (select 0 as num union all select 1 union all select 2 union

全部选择 3 联合全部选择 4 联合全部选择 5 联合全部选择 6 联合全部选择 7 联合全部选择 8 联合全部 选择 9) n1,

(select 0 as num union all select 1 union all select 2 union all select 3 union all select 4 union all 选择 5 联合全部 选择 6 联合全部 选择 7 联合全部 select 8 union all select 9) n2,

(select 0 as num union all 选择 1 联合全部 选择 2 联合全部 选择 3 联合全部 选择 4 联合全部 选择 5 联合全部 选择 6 联合全部 全选 7 联合全选 8 全联合全选 9) n3,

(select 0 as num union all select 1 union all select 2 union all select 3 联合全部选择 4 联合全部选择 5 联合全部选择 6
联合全部选择 7 联合全部选择 8 联合全部选择 9) n4,

(select 0 as num union all select 1 union all select 2 union 全部 选择 3 联合 全部 选择 4 联合 全部 选择 5 联合 全部 选择 6 联合全部 选择 7 联合全部 选择 8 联合全部 选择 9) n5

) 一个

LEFT JOIN 订单 o ON MONTH(o.Date)= MONTH(a.date)

AND YEAR(o.Date) = YEAR(a.date) where MONTH(a.date) ='7' and

YEAR(a.date) = '2019' GROUP BY a.date order by a.date

编辑: 与 2019 年 7 月一样,总共下了 4 个订单,所以当我使用上述解决方案时,每个日期都会给我 4 个结果。相反,它应该显示相应日期的订单计数和无订单日期的零。但它为每个日期显示 4 个。请让我知道我在哪里做错了。我的订单表是:

订单(OrderID(p.k), Date, totalPrice, CustomerID)

【问题讨论】:

    标签: mysql sql date timestamp left-join


    【解决方案1】:

    您的示例数据没有 2019 年 7 月的示例。

    我还建议您使用范围进行 where 比较,因此对于 2019 年 1 月:

    where a.date >= '2019-01-01' and a.date < '2019-02-01' 
    

    【讨论】:

    • 没有。我确实在 7 月份总共有 4 个订单。现在,它实际上不是零,而是在每个日期前面显示 4 个值。
    • 请查看我的编辑问题
    猜你喜欢
    • 1970-01-01
    • 2020-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-28
    • 1970-01-01
    相关资源
    最近更新 更多