Bienvenue! Inscrivez-vous et rejoignez notre communauté :)
  • Login:

Bienvenue sur Forum SIG - Systèmes d'Information Géographique et Géomatique.

Bienvenue sur le forumSIG. S'il s'agit de votre première visite, assurez vous de faire une recherche préalable dans les FAQ SIG. Vous devez vous inscrire avant de pouvoir poster.

Affichage des résultats 1 à 4 sur 4
  1. #1

    Date d'inscription
    mars 2016
    Messages
    11

    Par défaut SQL : Selection des trois plus grandes valeurs par commune

    Bonjour à tous,

    Je travaille sur les flux domicile travail, à l'échelle de la France.

    Pour chaque flux, j'ai un linéaire permettant de connaitre la commune d'arriver et de départs, et le nombre de personnes empruntant ce flux.

    Malgré plusieurs essaye et recherche, je n'arrive pas à obtenir pour chaque commune, les trois plus grand flux ainsi que leur destination.

    Ma table est configurée comme cela :

    geom geometry(LineString,2154),
    commune character varying(254), --> commune de départ
    commune_dc character varying(254), --> commune d'arrivée
    flux double precision,
    x_depart double precision,
    y_depart double precision,
    x_arrivee double precision,
    y_arrivee double precision,


    J'arrive à avoir le max comme cela :
    SELECT commune, max(
    flux) FROM "GENERALE"."FLUX_DOM_TRAV_2012" group by commune order by commune

    mais lorsque j'y ajoute la commune d'arriver :
    SELECT commune, max(
    flux) , commune_dc FROM "GENERALE"."FLUX_DOM_TRAV_2012" group by commune , commune_dc order by commune

    Il me multiplie les entrées.

    Avez-vous une solution ?

    Merci à toute la communauté.

    Lacenaire

  2. #2

    Date d'inscription
    novembre 2010
    Messages
    32

    Par défaut Re : SQL : Selection des trois plus grandes valeurs par commune

    A tester une requete du style

    with m as (select commune ,max(flux) as max_flux from "GENERALE"."FLUX_DOM_TRAV_2012" group by commune)
    SELECT commune, flux , commune_dc FROM "GENERALE"."FLUX_DOM_TRAV_2012" join m using(commune) where flux=max_flux

  3. #3

    Date d'inscription
    novembre 2010
    Messages
    32

    Par défaut Re : SQL : Selection des trois plus grandes valeurs par commune

    j'avais mal lu pour avoir les 3 flux les plus importants par commune je ferais

    select commune,flux,commune_dc from
    (select commune,flux,commune_dc,rank() over(partition by commune order by flux desc) as pos from "GENERALE"."FLUX_DOM_TRAV_2012") as sr
    where pos<4

  4. #4

    Date d'inscription
    mars 2016
    Messages
    11

    Par défaut Re : SQL : Selection des trois plus grandes valeurs par commune

    Merci, ça fonctionne très bien.
    Ça me permettra d'en apprendre plus sur postgres!
    Merci encore !

 

 

Discussions similaires

  1. [ArcGIS 10.x] Valeurs trop grandes de pentes
    Par space dans le forum Assistance Technique
    Réponses: 0
    Dernier message: 28/05/2014, 15h30
  2. [ArcGIS 9.x] Calcul de distance sur de grandes surfaces
    Par Dizzy84 dans le forum Assistance Technique
    Réponses: 7
    Dernier message: 07/09/2011, 07h33
  3. [MapBasic 9.x] Selection des sites de la même commune
    Par houp4 dans le forum Programmation
    Réponses: 1
    Dernier message: 30/03/2010, 17h42
  4. [MapInfo 8.x] Fusionner grandes quantité de TAB
    Par Protanim dans le forum Assistance Technique
    Réponses: 14
    Dernier message: 13/12/2009, 21h55
  5. [MapInfo 7.x] Gestion des images de grandes tailles
    Par GIS girl dans le forum Assistance Technique
    Réponses: 9
    Dernier message: 10/03/2008, 21h39

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •