Получить каждую 7-ую запись - PullRequest
1 голос
/ 12 сентября 2011

У меня есть статистическая таблица в таблице 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 Ответ

4 голосов
/ 12 сентября 2011

Из ссылки @ 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...