Message posté par : Jérôme KEREBEL
----------------------------------------
Bonjour, et merci beaucoup pour le lien.
Cela fonctionne parfaitement.
Attention néanmoins. Dans mon cas, j'ai besoin de faire un ORDER_BY sur un attribut et
non sur l'ID. Et la requête fonctionnait mal car cette attribut comprend beaucoup de
valeurs redondante. Aussi j'ai du passer par une table intermédiaire pour rajouter un
champ 'serial' reprenant le classement souhaité. Après quoi ça roule.
-----------------
Code :
-- Création d'une table de passage pour ordonner la table suivant le l'attribut
prod_crit
DROP TABLE IF EXISTS amdec_cana_xls2 ;
CREATE TABLE amdec_cana_xls2 AS
SELECT
id, fonction, mat_diam, nb_inter_aep, annee_pose, crit_fonc, crit_diam, crit_mat,
crit_age, crit_argi, crit_brt_plom, prod_crit, nom_rue, longueur, retenu, geom, rang,
etiquette, crit_inter_aep, cod_insee
FROM public.amdec_cana_xls
ORDER BY prod_crit DESC;
-- Ajout d'une colonne serial d'indexation
ALTER TABLE amdec_cana_xls2 ADD COLUMN classement serial;
-- Selection des entités en fonction du cumul des longueurs, dans l'ordre
d'indexation
select id,
prod_crit,
longueur,
cumul_longueur
from (
select
id,
prod_crit,
longueur,
sum(longueur) over (order by classement asc) as cumul_longueur
from amdec_cana_xls2
) t
where cumul_longueur <= 2000
-----------------
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=362674#p362674
Pour y répondre : qgis_fr(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