簡體   English   中英

基於時間戳的每10行

[英]Every 10th row based on timestamp

我有一個帶有信號名稱,值和時間戳的表。 這些信號以1樣本/秒的采樣率記錄。 現在,我想繪制一個月值的圖形,並且系統在幾秒鍾內執行它變得非常繁重。 所以我的問題是“有沒有辦法查看每分鍾1個值,換句話說,我想每60行查看一次?”

您可以使用row_number()函數row_number() ,然后使用取模運算來獲取行:

select signalname, value, timestamp
from (select t.*,
             row_number() over (order by timestamp) as seqnum
      from table t
     ) t
where seqnum % 60 = 0;

如果您的數據確實是正常的,則還可以提取秒值並檢查何時為0

select signalname, value, timestamp
from table t
where datepart(second, timestamp) = 0

假定timestamp以適當的日期/時間格式存儲。

除了抽樣之外,您還可以使用圖表的一分鍾平均值:

select  name
,       min(timestamp)
,       avg(value)
from    Yourtable
group by
        name
,       datediff(minute, '2013-01-01', timestamp)

如果您要繪制月份,甚至每小時平均數可能也足夠詳細。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM