查询时间序列最近24h的变化
query the last 24h changes in time series
有多个交易品种,每个交易品种在数据库中都有一个带有时间戳的时间序列
我使用以下查询来获取其时间序列中每个符号的几乎最后一个元素。
但我还需要提取每个符号在过去 24 小时内的变化量,并以百分比形式报告。
query = """
SELECT "askPrice" FROM "bookTicker" where
time >= now() - 10s and
time <= now() GROUP BY "symbol" limit 1
"""
D = client.query(query)
defaultdict(list,
{('bookTicker',
(('symbol',
'1000SHIBUSDT'),)): askPrice
2021-07-08 11:54:30.224000+00:00 0.007988,
('bookTicker',
(('symbol',
'1INCHUSDT'),)): askPrice
2021-07-08 11:54:29.730000+00:00 2.5377,
('bookTicker',
(('symbol',
'AAVEUSDT'),)): askPrice
2021-07-08 11:54:29.605000+00:00 284.03
...
bookTicker
measurement 有以下标签:
['askPrice', 'askSize', 'bidPrice', 'bidSize']
符号来自数据库中的其他测量值。
数据库非常大,让我知道我还能提供什么来阐明问题。
你有什么想法吗?
我在 Review question
部分发现了很多类似的问题,但我无法从中得到最终结果。
编辑
只是一个想法:
可能这是获取每个时间序列的最后一个元素的更好方法:
SELECT last("askPrice") FROM "bookTicker" WHERE time > now() - 1m GROUP BY "symbol";
并在我们需要从 :
中找到第一个元素之前获取每个时间序列 24 小时的值
SELECT first("askPrice") FROM "bookTicker" WHERE time > now() - 24h GROUP BY "symbol";
似乎可行,但我不知道如何计算 (a_last-a_first)/a_first *100
?
SELECT last("askPrice") FROM "bookTicker" WHERE time > now() - 1m GROUP BY "symbol" MINUS
SELECT first("askPrice") FROM "bookTicker" WHERE time > now() - 24h GROUP BY "symbol"; ???
尝试:
SELECT
(LAST("askPrice")-FIRST("askPrice"))/FIRST("askPrice")*100
FROM "bookTicker"
WHERE time > now() - 24h
GROUP BY "symbol"
有多个交易品种,每个交易品种在数据库中都有一个带有时间戳的时间序列 我使用以下查询来获取其时间序列中每个符号的几乎最后一个元素。 但我还需要提取每个符号在过去 24 小时内的变化量,并以百分比形式报告。
query = """
SELECT "askPrice" FROM "bookTicker" where
time >= now() - 10s and
time <= now() GROUP BY "symbol" limit 1
"""
D = client.query(query)
defaultdict(list,
{('bookTicker',
(('symbol',
'1000SHIBUSDT'),)): askPrice
2021-07-08 11:54:30.224000+00:00 0.007988,
('bookTicker',
(('symbol',
'1INCHUSDT'),)): askPrice
2021-07-08 11:54:29.730000+00:00 2.5377,
('bookTicker',
(('symbol',
'AAVEUSDT'),)): askPrice
2021-07-08 11:54:29.605000+00:00 284.03
...
bookTicker
measurement 有以下标签:
['askPrice', 'askSize', 'bidPrice', 'bidSize']
符号来自数据库中的其他测量值。
数据库非常大,让我知道我还能提供什么来阐明问题。
你有什么想法吗?
我在 Review question
部分发现了很多类似的问题,但我无法从中得到最终结果。
编辑 只是一个想法:
可能这是获取每个时间序列的最后一个元素的更好方法:
SELECT last("askPrice") FROM "bookTicker" WHERE time > now() - 1m GROUP BY "symbol";
并在我们需要从 :
中找到第一个元素之前获取每个时间序列 24 小时的值SELECT first("askPrice") FROM "bookTicker" WHERE time > now() - 24h GROUP BY "symbol";
似乎可行,但我不知道如何计算 (a_last-a_first)/a_first *100
?
SELECT last("askPrice") FROM "bookTicker" WHERE time > now() - 1m GROUP BY "symbol" MINUS
SELECT first("askPrice") FROM "bookTicker" WHERE time > now() - 24h GROUP BY "symbol"; ???
尝试:
SELECT
(LAST("askPrice")-FIRST("askPrice"))/FIRST("askPrice")*100
FROM "bookTicker"
WHERE time > now() - 24h
GROUP BY "symbol"