查询过去20天的平均值

时间:2015-06-26 08:11:18

标签: sql sql-server postgresql sql-server-2008

我有下表(称为:每日):

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个符号。

1 个答案:

答案 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;