PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Postgresql:Grupowanie z limitem rozmiaru grupy przy użyciu funkcji okna

Można to zrobić za pomocą dwóch zagnieżdżonych funkcji okna

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;

Z 2 będącą parametrem wielkości grupy.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak utworzyć użytkownika tylko do odczytu w PostgreSQL

  2. PostgreSQL:Jak ustawić search_path na poziomie użytkownika?

  3. Jak uzyskać komunikaty ostrzegawcze dotyczące procedury Postgresql?

  4. Musisz utworzyć wyzwalacz, który zwiększa wartość w tabeli po wstawieniu

  5. Uruchamianie PostgreSQL tylko w pamięci