2016-09-22 113 views
0

我有一個數據庫,其中的數據已經以固定的時間間隔記錄了5分鐘,表示它已記錄24小時,如下表所示。從SQL中選擇每第N條記錄

 Date and Time  Value 
    2016-09-17 14:00:00  25.26 
    2016-09-17 14:05:00  24.29 
    2016-09-17 14:10:00  25.22 
    2016-09-17 14:20:00  25.10 





    2016-09-17 23:55:00  20.21 

我想要顯示使用SQL查詢每讀1小時有一些讀數可能會丟失的機會預期的輸出應該是。

 Date and Time  Value 
    2016-09-17 14:00:00  25.26 
    2016-09-17 15:00:00  27.29 
    2016-09-17 16:00:00  28.12 
    2016-09-17 17:00:00  22.11 

有可能我的某些閱讀可能會丟失。像

 Date and Time  Value 
    2016-09-17 14:35:00  25.26 

這個讀數可能會丟失 請推薦SQL查詢相同

+1

哪你正在使用DBMS? –

+0

SQL server 2012 – Lalit

+0

請考慮另一種方法,嘗試用分鐘和秒讀零行而不是讀取每第N條記錄。 –

回答

2
SELECT t1.DateCol, 
     t1.Value 
FROM yourTable t1 
INNER JOIN 
(
    SELECT MIN(DateCol) AS firstDate 
    FROM yourTable 
    GROUP BY FORMAT(DateCol, 'dd/MM/yyyy hh') 
) t2 
    ON t1.DateCol = t2.firstDate 

如果你不是想組由每15分鐘,你可以嘗試:

GROUP BY CONCAT(FORMAT(DateCol, 'dd/MM/yyyy hh'), 
       FLOOR(DATEPART(MINUTE, DateCol)/15)) 
+0

感謝它的工作很好,但仍有一個疑問,如果間隔時間不是一小時說我想在任何時間間隔看到可能是15分鐘,30分鐘等等 – Lalit

+0

@Lalit我更新了我的答案。例如,在15分鐘內,您可以爲該季度小組添加一個詞語。 –

+1

感謝它像魔術一樣工作 – Lalit