PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Postgresql:Групиране с ограничение на размера на групата с помощта на прозоречни функции

Може да се направи с помощта на две вложени прозоречни функции

SELECT
  id
FROM (
  SELECT
    id,
    color,
    score,
    ((rank() OVER color_window) - 1) / 2 AS rank_window_id
  FROM grouping_test
  WINDOW color_window AS (PARTITION BY color ORDER BY score DESC)
) as foo
WINDOW rank_window AS (PARTITION BY (color, rank_window_id))
ORDER BY
  (max(score) OVER rank_window) DESC,
  color;

С 2 като параметър на размера на групата.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. модулно тестване с база данни в паметта

  2. Как да изтрия данни от множество таблици?

  3. PostgreSQL SQL заявка за обхождане на цял неориентиран график и връщане на всички намерени ръбове

  4. Java Подготвени отчети за PostgreSQL

  5. Преброяване на знаци в последователности чрез SQL