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 :