Sql server 在SQL Server中按给定的开始日期每周统计行数
我想选择每周每个订单的计数。从给定日期开始。给定以下来自SQL Server的这组数据。如何查询将显示周列表和相应的行/订单计数的信息 这是我想要的输出 您可以按日期部分(wk)分组。请看 可能是这样的:Sql server 在SQL Server中按给定的开始日期每周统计行数,sql-server,Sql Server,我想选择每周每个订单的计数。从给定日期开始。给定以下来自SQL Server的这组数据。如何查询将显示周列表和相应的行/订单计数的信息 这是我想要的输出 您可以按日期部分(wk)分组。请看 可能是这样的: select DATEPART(yyyy,created_by_dt) as Year, DATEPART(wk, created_by_dt) as Week, count(*) as Count from X group by DATEPART(yyyy,created_by_dt),
select DATEPART(yyyy,created_by_dt) as Year, DATEPART(wk, created_by_dt) as Week, count(*) as Count from X
group by DATEPART(yyyy,created_by_dt), DATEPART(wk, created_by_dt)
order by DATEPART(yyyy,created_by_dt), DATEPART(wk, created_by_dt)
以下脚本将为您提供更好的输出:
select
-- Start of week from https://stackoverflow.com/questions/1267126/get-the-week-start-date-and-week-end-date-from-week-number-in-sql-server
-- by Tomalak
CONVERT(date, DATEADD(dd, 0 - (@@DATEFIRST + 5 + DATEPART(dw, created_by_dt)) % 7, created_by_dt)) AS Monday,
count(*) as Count,
MIN(created_by_dt) AS FirstRecordThisWeek,
CONVERT(date,MIN(created_by_dt)) AS FirstRecordThisWeek_date
from X
group by CONVERT(date, DATEADD(dd, 0 - (@@DATEFIRST + 5 + DATEPART(dw, created_by_dt)) % 7, created_by_dt))
order by CONVERT(date, DATEADD(dd, 0 - (@@DATEFIRST + 5 + DATEPART(dw, created_by_dt)) % 7, created_by_dt))
输出(来自我的数据):
因此,这不是一个代码编写服务,您需要尝试一下,当您遇到困难时,请发布您的尝试,以便我们能够提供帮助。谢谢!这对我有用。我只是想澄清一下。“星期一”列显示每周的开始日期(即星期一)不是吗?
Monday Count FirstRecordThisWeek FirstRecordThisWeek_date
2018-12-31 1 2019-01-03 05:11:30.570 2019-01-03
2019-03-11 1 2019-03-13 06:03:41.500 2019-03-13
2019-04-01 2 2019-04-04 01:16:34.440 2019-04-04
2019-04-15 21 2019-04-15 04:25:30.913 2019-04-15
2019-04-29 6 2019-04-30 06:52:26.057 2019-04-30
2019-05-06 3 2019-05-08 07:01:00.683 2019-05-08
2019-05-13 5 2019-05-16 22:58:43.610 2019-05-16