PostgreSQL Hebdo #65

Lu cette semaine :

Pour mieux comprendre le fonctionnement de rank() WITHIN GROUP(), en complément de ce dernier article, je vous propose la requête suivante :

select key ~ '^[aeiou]$' as is_vowel
    , array_agg(key)
    , rank('f') within group (order by key) 
  from ( values ('a'),('b'),('c'),('d'),('e'),('f'),('g') ) as chars( key ) 
  group by key ~ '^[aeiou]$' ;
 is_vowel |  array_agg  | rank 
----------+-------------+------
 f        | {d,b,c,f,g} |    4
 t        | {a,e}       |    3
(2 rows)

Ou la valeur donnée par rank() est le rang de la valeur passée en argument de la fonction, dans la liste obtenue visible dans l'agrégat array_agg(). Cet exemple permet de distinguer les données manipulées du rang obtenu, quel que soit l'intérêt réel de la requête.

À venir dans PostgreSQL 13 :

Agenda :

Haut de page