[英]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.