获得每个第7条记录

时间:2011-09-12 18:49:03

标签: postgresql

我在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子句中不允许使用窗口函数

1 个答案:

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