我希望计算上个月每天的每小时订单数。
我WHERE
从另一份报告 (1) 中获得了此条款,该条款从运行时开始确定“上个月”的正确月份。
理想情况下,我希望将小时数作为我的“最左侧”列,而不是日期。
我认为我可以在 datepart 中得到不同的WHERE
日期,然后计算 datepart,其中 hour = 1、2 等。但是,下面的代码 (2) 会导致超过 300 条记录。
(1)
WHERE YEAR(Bookings.PICKUP_DATE)
= YEAR(DATEADD(mm, -1, DATEADD(m, DATEDIFF(m, 0, getdate()), 0)))
AND MONTH(Bookings.PICKUP_DATE)
= MONTH(DATEADD(mm, -1, DATEADD(m, DATEDIFF(m, 0, getdate()), 0)))
(2)
select
distinct(datepart(dd,b.pickup_date)) as DAYOFTHEMONTH
,COUNT(CASE WHEN DATEPART(HH,B.PICKUP_DATE) = 1 THEN 1 ELSE 0 END)