IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes PostgreSQL Discussion :

Requête st_clusterwithin avec condition


Sujet :

Requêtes PostgreSQL

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Doctorant
    Inscrit en
    Octobre 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Doctorant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Requête st_clusterwithin avec condition
    Bonjour,

    Je vous contacte car je suis face à un problème en SQL sur lequel je butte depuis plusieurs semaines.

    Je dispose de la table suivante (extrait) :

    Nom : Capture d’écran 2017-10-25 à 16.14.05.png
Affichages : 292
Taille : 49,7 Ko

    Voici mon objectif:

    Je souhaites regrouper des polygones selon les deux conditions suivantes :

    -ils ne doivent pas être distants de plus d'une certaine distance fixée (ceci fonctionne avec st_clusterwithin, je fixe ici la distance à 250m)
    -la différence entre la valeur de "burndate" des polygones regroupés ne doit pas être supérieure à 7 (ceci je n'arrive pas à l'avoir)
    -enfin j'aimerais ajouter à ma table générée une colonne avec le burndate minimum des polygones regroupés

    Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT unnest(st_clusterWithin(tab.geom, 250)) AS cluster_field,
    CAST (tab.annee AS integer) as annee,
    tab.MOIS as mois
    FROM public."2003_08" as tab
    GROUP BY ANNEE, MOIS;
    Voici la table générée (extrait):

    Nom : Capture d’écran 2017-10-25 à 16.24.47.png
Affichages : 302
Taille : 48,9 Ko

    Merci pour votre aide précieuse

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Comme ceci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT unnest(st_clusterWithin(tab.geom, 250)) AS cluster_field,
    CAST (tab.annee AS integer) as annee,
    tab.MOIS as mois, MIN(burndate) as burndateMini
    FROM public."2003_08" as tab
    GROUP BY ANNEE, MOIS
    HAVING MAX(burndate) - MIN(burndate) <= 7;

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Doctorant
    Inscrit en
    Octobre 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Doctorant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par aieeeuuuuu Voir le message
    Bonjour,

    Comme ceci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT unnest(st_clusterWithin(tab.geom, 250)) AS cluster_field,
    CAST (tab.annee AS integer) as annee,
    tab.MOIS as mois, MIN(burndate) as burndateMini
    FROM public."2003_08" as tab
    GROUP BY ANNEE, MOIS
    HAVING MAX(burndate) - MIN(burndate) <= 7;
    Non, cette requête ne me renvoie aucun résultat.

  4. #4
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Bonjour,

    Qu'est-ce que vous entendez, exactement, par "regrouper les polygones" ?
    Quoi qu'il en soit, il va falloir faire une auto-jointure spatiale de la table sur elle-même...
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

Discussions similaires

  1. Requète SELECT avec conditions
    Par cdelamarre dans le forum C++Builder
    Réponses: 1
    Dernier message: 24/06/2008, 11h46
  2. Requête SQL avec condition
    Par charlix dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/03/2008, 11h38
  3. [MySQL] requête mysql avec condition à élaborer à partir d'un tableau
    Par taffMan dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 13/06/2007, 09h18
  4. Requête Access avec condition IIF
    Par SuperNav77 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 19/01/2007, 22h54
  5. [MySQL] concaténer une requête sql avec condition
    Par maliak dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 10/02/2006, 12h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo