我在PostgreSQL表中有一个统计表:
article_id | date | read_count
1 | 2011-06-02 | 12
1 | 2011-06-03 | 54
1 | 2011-06-04 | 2
1 | 2011-06-05 | 432
因为我需要在图表中使用这些数据,所以我需要在每周获取值。
我知道Postgres有一个row_number()函数,无论如何我没有让它正常工作。
SELECT "date", "read_count" FROM "articles_stats"
WHERE row_number() OVER (ORDER BY "date" ASC) % 7 = 0
ORDER BY "date" ASC
错误:WHERE子句中不允许使用窗口函数
答案 0 :(得分:4)
来自@ pst的链接,
“如果需要在窗口后过滤或分组行 执行计算后,您可以使用子选择。“
例如:
SELECT *
FROM (
SELECT "date", "read_count",
row_number() OVER (ORDER BY "date" ASC) as n
FROM "articles_stats"
) x
WHERE x.n % 7 = 0
ORDER BY x."date" ASC