小编典典

如何计算不同时间段中数据库的行数?

sql

我在Sybase DB中有一个表,其中包含一列createdDateTime。我想要做的是计算在特定但正在累积的时间段之间创建了多少行,即:
7:00-7 : 15
7 : 00-7 :30
7:00-7:45
7: 00-8 :00 …依此类推,直到我有上次分组时间7:00-18:00。

有没有一种好的方法可以在SQL中执行一个查询,该查询将为我返回所有行以及所有行数:
时间听行创建的
7:00-7:15 0
7:00-7:30 5
7:00-7:45 8
7:00-8:00 15
…听…

目前,我有一个解决方案,但它要求我运行44次参数化查询才能获取所有数据。

谢谢,


阅读 160

收藏
2021-04-28

共1个答案

小编典典

我最近在博客上写了这个确切的话题,虽然不确定它是否可以在Sybase中使用,但这是解决方案

declare @interval int
set @interval = 5
select datepart(hh, DateTimeColumn)
, datepart(mi, DateTimeColumn)/@interval*@interval
, count(*)
from thetable
group by datepart(hh, DateTimeColumn)
, datepart(mi, DateTimeColumn)/@interval*@interval

和更多详细信息 http://ebersys.blogspot.com/2010/12/sql-group-datetime-by-arbitrary-
time.html

2021-04-28