sql >> Database >  >> RDS >> PostgreSQL

Postgresql:Groeperen met limiet voor groepsgrootte met behulp van vensterfuncties

Het kan worden gedaan met behulp van twee geneste vensterfuncties

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;

Met 2 zijnde de parameter van de groepsgrootte.



  1. Wat is de echte waarde van het introduceren van Microsoft Access in uw organisatie?

  2. base64-codering in MySQL

  3. SELECTEER DISTINCT alleen de eerste vier nummers

  4. Kan geen verbinding maken met mysql-server met go en docker - kies tcp 127.0.0.1:3306:verbinden:verbinding geweigerd