SQL Server按日期时间对行进行分组,并使用计数获取总数
我有一个带有一些字段的表,其中一个是datetime类型:SQL Server按日期时间对行进行分组,并使用计数获取总数,sql,sql-server,select,Sql,Sql Server,Select,我有一个带有一些字段的表,其中一个是datetime类型: Id When typeOfAction 1 01/02/2020 10:30:02 7 2 01/02/2020 10:30:02 7 3 01/02/2020 10:30:02 7 4 01/02/2020 12:15:00 7 5 01/02/2020 12:15:00 7 6 10/03/2020 17:00:45 7 我想得到
Id When typeOfAction
1 01/02/2020 10:30:02 7
2 01/02/2020 10:30:02 7
3 01/02/2020 10:30:02 7
4 01/02/2020 12:15:00 7
5 01/02/2020 12:15:00 7
6 10/03/2020 17:00:45 7
我想得到一个具体的日子里,typeOfAction=7的行数。具有相同日期和时间的行应计为1行
例如,如果我想获得2020年2月1日typeOfAction=7的行数,我希望获得2的计数,因为日期和时间相同的行2020年2月1日10:30:02应计为1,2020年2月1日10:30:02的行数相同。您可以通过它提取日期和组,然后计算每个日期的不同日期时间:
选择强制转换(当为日期时)、计数(当为不同日期时)
从mytable
其中,操作类型=7
按演员分组(截止日期时)
您可以通过以下分析功能来实现:
select t.*, count(*) over (partition by typeOfAction, cast(when as date)) cnt from t
日期时间的cast
将删除时间部分,以便查找当天的数据。CONVERT(日期,'yourdatetimeHere')
去除时间。