Message posté par : EmilieDB
----------------------------------------
Bonjour,
si j'ai bien compris votre demande, la requête suivante doit convenir. Le principe :
- la sous requête t associe un rang à chaque commune pour chaque département, ainsi que
vous l'avez déjà fait,
- la sous requête 'detail' ne conserve que les 200 1ers rangs
- la sous requete lmax donne la ligne correspondant au rang maximum de la sous requête
"détail" (donc 200 ou moins si le département compte moins de 200 communes)
- une jointure entre lmax et detail permet de récupérer tout le détail pour le rang 200 ou
maximum.
-----------------
Code :
with t as(
select row_number() over(partition by code_dpt order by pop_municipale) r, *
from table_population)
,detail as(
select * from t where r<=200 )
, lmax as
(select max(r)r,code_dpt from t group by code_dpt)
select * from
lmax inner join t on lmax.r=t.r and lmax.code_dpt=t.code_dpt
order by t.code_dpt
-----------------
Emilie
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=351129#p351129
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net