我有下表(称为:每日):
daily_id, symbol_id, date, volume
1 555 2015-01-21 3466
2 444 2015-01-21 54645
3 555 2015-01-22 4656
4 444 2015-01-22 546468
我正在尝试编写一个查询,它将为我提供过去20天内每个符号的平均音量。即:我需要在过去20天内对符号555的平均音量进行调整,对于符号444则需要相同的音量。然后我需要选择平均音量最高的前100个符号。
我只能确定符号整个历史记录的每个符号的平均音量,但我无法弄清楚如何限制回顾期:
select avg(volume) as avg_vol, symbol_id
from daily
group by symbol_id;
有了这个,我需要将结果限制为平均音量最高的前100个符号。
答案 0 :(得分:2)
使用INTERVAL
SELECT AVG(volume) AS avg_vol, symbol_id
FROM daily
WHERE date > current_date - INTERVAL'20' day
GROUP BY symbol_id
ORDER BY AVG(volume) DESC
LIMIT 100;