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é ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Wed 19 January 2011 09:55

Pierre
DesCartesPourUnMondeMeilleur
Date d'inscription: 22 Sep 2005
Messages: 1643

ORACLE/SQL : analyse statistique de distance

Aloha

Je sais obtenir des couples d'objets (objet impactant/parcelle) grâce à SDO_WITHIN... Comment faire pour classer ces couples en X classes en fonction de la distance ?
Je limite la zone "WITHIN" à 200m mais j'aimerais pouvoir créer par exemple 4 classes rassemblant le même nombre de couple,...

Quelqu'un a-t'il une idée ?

D'avance merci
**************
J'ai trouvé une méthode peut-être,

Code:

SELECT S.GID_D,
       S.GID_A,
       S.CLASS,
       S.NAME
       || NTILE (
             4)
          OVER (
             ORDER BY
                SDO_GEOM.SDO_DISTANCE (S.BASIAS_GEOMETRY, S.PARC_GEOMETRY, 1) DESC),
       S."TYPE",
       SDO_GEOM.SDO_DISTANCE (S.BASIAS_GEOMETRY, S.PARC_GEOMETRY, 1)
  FROM (SELECT                                                  /*+ ORDERED */
               BASIAS.GID "GID_D",
               BASIAS.GEOMETRY AS BASIAS_GEOMETRY,
               PARC.GID "GID_A",
               PARC.GEOMETRY AS PARC_GEOMETRY,
               'PCI_PARC' "CLASS",
               'BASIAS_' AS NAME,
               0 "TYPE"
          FROM A_REIMS.BASIAS BASIAS, A_REIMS.PCI_PARC PARC
         WHERE SDO_WITHIN_DISTANCE (PARC.GEOMETRY,
                                    BASIAS.GEOMETRY,
                                    'distance=200') = 'TRUE'
               ) S
               ;

Mais comment améliorer mon explain plan ? j'ai un indicateur de coût en ressource de 137000 et une cardinalité de 300000...

Dernière modification par Pierre (Wed 19 January 2011 11:00)


art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.

Hors ligne

 

#2 Thu 20 January 2011 17:53

Pierre
DesCartesPourUnMondeMeilleur
Date d'inscription: 22 Sep 2005
Messages: 1643

Re: ORACLE/SQL : analyse statistique de distance

Dans le même ordre d'idée, comment faire à partir du calcul de quartile (la distance médiane, la distance qui regroupe 75%,...) pour dénombrer le nombre de parcelles ?


art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.

Hors ligne

 

Pied de page des forums

Powered by FluxBB