簡體   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