Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
database:requetes-sql-utiles [2024/05/25 07:34] – [Déterminer les groupes d'identifiant contigu] jpmilcentdatabase:requetes-sql-utiles [2025/12/03 14:48] (Version actuelle) – [Différents calculs du rayon moyen d'un polygone] jpmilcent
Ligne 119: Ligne 119:
 </code> </code>
  
 +===== Calculer le diamètre d'un type de géométrie ===== 
 +Pour le calcul du diamètre, nous utilisons la distance moyenne du centroïde du polygone a chaque point constituant son périmètre : 
 +<code sql> 
 +WITH areas AS ( 
 +    SELECT  
 +        id_area, 
 +        area_name AS title, 
 +        area_code AS code, 
 +        geom 
 +    FROM ref_geo.l_areas  
 +    WHERE id_type = ref_geo.get_id_area_type('COM'
 +        AND "enable" = True 
 +), 
 +perimeters AS ( 
 +    SELECT  
 +        id_area, 
 +        (st_dumppoints(geom)).* 
 +    FROM areas 
 +), 
 +diameters AS ( 
 +    SELECT 
 +        a.id_area, 
 +        a.title, 
 +        a.code,  
 +        (round(avg(st_distance(st_centroid(a.geom), p.geom))) * 2) AS "diameter" 
 +    FROM areas AS a 
 +        JOIN perimeters AS p 
 +            ON (a.id_area = p.id_area) 
 +    GROUP BY a.id_area, a.title, a.code 
 +    ORDER BY a.id_area 
 +
 +SELECT  
 +    avg("diameter"
 +FROM diameters; 
 +</code>
 ===== Déterminer s'il manque des index ===== ===== Déterminer s'il manque des index =====
 Source: https://salayhin.wordpress.com/2018/01/02/finding-missing-index-in-postgresql/ Source: https://salayhin.wordpress.com/2018/01/02/finding-missing-index-in-postgresql/
Ligne 198: Ligne 232:
  SELECT   SELECT 
  id,   id, 
-     SUM(rst) OVER (ORDER BY id) AS grp+ SUM(rst) OVER (ORDER BY id) AS grp
  FROM (  FROM (
  SELECT   SELECT 
Ligne 208: Ligne 242:
  WHERE dj.id_data IS NULL  WHERE dj.id_data IS NULL
  ORDER BY ispi.id_synthese ASC  ORDER BY ispi.id_synthese ASC
- ) t +AS 
- ) t+AS t
  GROUP BY grp  GROUP BY grp
  ORDER BY 1  ORDER BY 1
Ligne 220: Ligne 254:
  WHERE id_synthese > d.min AND id_synthese < d.max  WHERE id_synthese > d.min AND id_synthese < d.max
  ) AS td  ) AS td
 +WHERE td.nbr > 0
 GROUP BY d.grp, d."min", d."max", td.nbr GROUP BY d.grp, d."min", d."max", td.nbr
 ORDER BY d.grp; ORDER BY d.grp;
Ligne 226: Ligne 261:
 Résultats : Résultats :
 <code> <code>
-|grp|min       |max       |countDone+|grp|min       |max       |downloaded|to_download
-|---|----------|----------|-----|-----| +|---|----------|----------|----------|-----------| 
-|1  |3 215 985  |3 339 850  |0    | X   | +|1  |5 839 897  |6 467 981  |3 255     |581 087    | 
-|2  |5 839 897  |6 467 981  |   | +| |9 404 094  |9 576 583  |0         |172 488    | 
-| |9 404 094  |9 576 583  |0    | +| |15 444 377 |15 455 826 |2 454     |2 773      
-| |15 444 377 |15 455 826 |2 454 | +| |15 609 091 |15 609 795 |703       |703        
-|5  |15 542 006 |15 542 006 |0    +| |16 335 991 |16 336 391 |1         |52         
-| |15 609 091 |15 609 795 |703  | +| |16 640 640 |16 641 280 |290       |639        |
-|7  |15 843 950 |15 843 951 |0    +
-| |16 335 991 |16 336 391 |1    +
-| |16 640 640 |16 641 280 |290  |+
 </code> </code>
  • database/requetes-sql-utiles.1716622457.txt.gz
  • Dernière modification : 2024/05/25 07:34
  • de jpmilcent