Sql server 计算SQL Server中每小时的行数,并为其间的时间间隔添加零

Sql server 计算SQL Server中每小时的行数,并为其间的时间间隔添加零,sql-server,count,aggregation,hour,Sql Server,Count,Aggregation,Hour,我试图从SQLServer中的表中计算每小时的行数。我想要的结果是对我每小时的数据进行计数(即使条目跨越每小时的不同分钟),本质上是对数据进行聚合 这是一个类似的问题 这个问题的答案几乎就是我想要的,只是它不包括计数为0的小时数。所以本质上我试图用零来填补这些空白,这样我每天可以得到24分 谢谢你的帮助 谢谢只需创建一个包含24行(1-24)的表或创建一个CTE/派生表(选择1 union all select 2…),并将查询的其余部分作为外部联接添加到此表中,然后您将获得缺少的行如果您也需要

我试图从SQLServer中的表中计算每小时的行数。我想要的结果是对我每小时的数据进行计数(即使条目跨越每小时的不同分钟),本质上是对数据进行聚合

这是一个类似的问题

这个问题的答案几乎就是我想要的,只是它不包括计数为0的小时数。所以本质上我试图用零来填补这些空白,这样我每天可以得到24分

谢谢你的帮助


谢谢

只需创建一个包含24行(1-24)的表或创建一个CTE/派生表(选择1 union all select 2…),并将查询的其余部分作为外部联接添加到此表中,然后您将获得缺少的行

如果您也需要缺少天数,您可能需要为此添加一个日历表。如果数据量非常小,也可以使用递归CTE完成。谢谢您的回复。不幸的是,我的数据跨越了几年,并将继续扩展到未来。此外,我希望避免使用“硬编码”的日期/时间表,因为它们是固定的-我更希望获取数据集的第一个和最后一个日期,并以某种方式动态生成缺少的日期/时间项。您可以生成该表,例如未来50年,只获取您需要的日期,例如直到今天。这可能比尝试动态构建缺失的日期要好。不过,你知道如何自动填充这样一个表吗?