将查询结果拆分为15分钟

时间:2013-07-10 13:07:46

标签: group-by sql-server-2012

希望你能帮我解决这个问题......我需要对存储在SQL Server 2012数据库中的一些数据进行一些分析。

我目前有查询将结果分成1小时的块,但我还需要查询将结果分成15分钟和30分钟的chucks,我不知道如何做到这一点。我在网上看过,但我发现的并没有多大意义。

以下是我用于每小时拆分的代码

SELECT Name, Description, CONVERT(varchar(14), RecordedDateTime, 113) + ':00:00' AS RecordedDateHour,
  COUNT(Id) AS TotalRecordings, MIN(RecordedDateTime) AS MinRecordedDateTime,
  MAX(RecordedDateTime) AS MaxRecordedDateTime,
  COUNT(DISTINCT Id) AS TotalDistinctIds
FROM MainTable
WHERE RecordedDateTime >='21 May 2013' AND RecordedDateTime < '23 May 2013'
GROUP BY Name, Description, CONVERT(varchar(14), RecordedDateTime, 113) + ':00:00'
ORDER BY Name, Description, CONVERT(varchar(14), RecordedDateTime, 113) + ':00:00'

你能给予的任何帮助都会很棒。

由于

亚历

1 个答案:

答案 0 :(得分:0)

并非您问过,但是高度有问题,您在比较包含“2013年5月21日”之类的字符的char类型值中的日期范围。例如,“2012年5月22日”怎么办?

作为一般方法,如果您想按时间段收集数据,请查看此StackOverflow问题并回答:How to Round a Time in T-SQL

然后GROUP BY舍入时间值。