繁体   English   中英

SQL Server-合并单个查询的结果

[英]SQL Server - Combining results from a single query

使用SQL Server 2008R2,我尝试编写一个查询,该查询将返回特定时间范围内的所有值的总和(在这种情况下,间隔为15分钟)从长远来看,它将用于标识丢失的数据(每个服务器应为每15分钟返回12的值)。 我已经到了可以得到我正在寻找的结果的地步,但是我需要一种将它们全部合并到同一查询中的方法。 以下代码(此日期通常由变量定义,在这种情况下,以09/01/2013为例):

Select SUM(Accounted_for) 'accounted for',date,time,server
from dbmetrics.dbo.tblmissing 
where DATE='09/01/2013'
  and (TIME between '00:00:00' and '23:59:59')
  and SERVER='Server01'
group by DATE, TIME, server , DATEPART(hour,time),
      DATEPART(MINUTE,time),DATEPART(second,time) / 96
GO

结果按此方式返回”返回的结果如下所示

Number    Date            Time                   Server
4         2013-09-01      12:00:01.0000000      server01
6         2013-09-01      12:00:02.0000000      server01
2         2013-09-01      12:00:15.0000000      server01
10        2013-09-01      12:15:02.0000000      server01
2         2013-09-01      12:15:09.0000000      server01

我想看到的是

12      2013-09-01      12:00:00.0000      Server01
12      2013-09-01      12:15:00.0000      Server01

您可能需要GROUP BY[Server] ,而不是让MAX()[Server] 正如亚伦·伯特兰德( Aaron Bertrand )所述,您的时间价值恰好间隔15分钟。 该查询将把时间舍入到分钟并按此对数据进行分组。

SELECT SUM([Number]) AS [Number], 
       [Date], 
       CONVERT(time, DATEADD(minute, DATEDIFF(minute, 0, [Time]), 0)) AS [Time], 
       MAX([Server]) 
FROM   [Table] 
GROUP  BY [Date], 
          DATEADD(minute, DATEDIFF(minute, 0, [Time]), 0) 

观看演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM