banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oubliĂ© ?

#1 Wed 17 November 2021 19:48

Hippo
Participant actif
Date d'inscription: 18 Jan 2015
Messages: 57

Retourner les 5 plus grandes communes de chaque département

Bonsoir,

J'ai une table dans PostGreSQL qui liste les départements français et les communes composant chacun des départements, ainsi que les populations municipales.
Je souhaiterais que ma requĂȘte retourne pour chaque dĂ©partement les 5 communes ayant le plus d'habitants.

J'ai bien essayé quelquechose comme :
SELECT * FROM table ORDER BY departement,population DESC FETCH FIRST 5 ROWS ONLY

Mais la requĂȘte me renvoie Ă©videmment les 10 premiĂšres lignes de mon tableau et non les 5 premiĂšres lignes pour chaque dĂ©partement ...

Hors ligne

 

#2 Wed 17 November 2021 22:14

p.jeremie
Participant assidu
Lieu: Valence
Date d'inscription: 10 Sep 2017
Messages: 455

Re: Retourner les 5 plus grandes communes de chaque département

Bonjour,

Des solutions Ă  ce problĂšme sur cette page (en anglais) https://stackoverflow.com/questions/112 … each-group

La solution marquée comme retenue peut répondre à ton problÚme car je suppose que tu n'as pas de problématique de millions de lignes et donc de performances.

Code:

SELECT
  * 
FROM (
  SELECT
    ROW_NUMBER() OVER (PARTITION BY departement ORDER BY population) AS r,
    t.*
  FROM
    table t) x
WHERE
  x.r <= 5;

Dernière modification par p.jeremie (Wed 17 November 2021 22:14)

Hors ligne

 

#3 Thu 18 November 2021 09:33

Hippo
Participant actif
Date d'inscription: 18 Jan 2015
Messages: 57

Re: Retourner les 5 plus grandes communes de chaque département

Génial !! Merci @p.jeremie !
La requĂȘte renvoie bien le rĂ©sultat escomptĂ© et effectivement pas de soucis de performances dans mon cas.

Hors ligne

 

#4 Thu 18 November 2021 10:15

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1566

Re: Retourner les 5 plus grandes communes de chaque département

Hello,

ORDER BY population DESC pour avoir les 5 plus importantes populations, non ?

Nicolas

Hors ligne

 

#5 Thu 18 November 2021 11:18

p.jeremie
Participant assidu
Lieu: Valence
Date d'inscription: 10 Sep 2017
Messages: 455

Re: Retourner les 5 plus grandes communes de chaque département

Nicolas Ribot a écrit:

Hello,

ORDER BY population DESC pour avoir les 5 plus importantes populations, non ?

Nicolas


En effet bien vu, j'ai oubliĂ© d'adapter ce dĂ©tail important quand j'ai collĂ© la requĂȘte depuis la source citĂ©e dans mon message prĂ©cĂ©dent smile

Hors ligne

 

#6 Thu 18 November 2021 11:40

Hippo
Participant actif
Date d'inscription: 18 Jan 2015
Messages: 57

Re: Retourner les 5 plus grandes communes de chaque département

Exact, je l'avais ajoutĂ© en copiant la requĂȘte :-)

Hors ligne

 

Pied de page des forums

Copyright Association GeoRezo