Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente | |||
| database:requetes-sql-utiles [2024/05/25 07:44] – [Déterminer les groupes d'identifiant contigu] jpmilcent | database:requetes-sql-utiles [2025/12/03 14:48] (Version actuelle) – [Différents calculs du rayon moyen d'un polygone] jpmilcent | ||
|---|---|---|---|
| Ligne 119: | Ligne 119: | ||
| </ | </ | ||
| + | ===== 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(' | ||
| + | AND " | ||
| + | ), | ||
| + | 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), | ||
| + | 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(" | ||
| + | FROM diameters; | ||
| + | </ | ||
| ===== Déterminer s'il manque des index ===== | ===== Déterminer s'il manque des index ===== | ||
| Source: https:// | Source: https:// | ||