diff --git a/content/articles/2024/2024-12-31_sql_json.md b/content/articles/2024/2024-12-31_sql_json.md index 3b945a3353..e2737e2a61 100644 --- a/content/articles/2024/2024-12-31_sql_json.md +++ b/content/articles/2024/2024-12-31_sql_json.md @@ -440,7 +440,7 @@ ORDER BY "CODGEO"; Ouf. -![donnees_communes](https://cdn.geotribu.fr/tinyfilemanager.php?p=articles-blog-rdp%2Farticles%2F2024%2Fpostgresql_json&view=donnees_communes.png){: .img-center loading=lazy } +![donnees_communes](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/postgresql_json/donnees_communes.png){: .img-center loading=lazy } On veillera à bien grouper les inserts dans cet ordre annee/base/code_commune afin de faciliter la lecture des données par PostgreSQL (si votre table est partitionnée, celà sera facilité). @@ -478,7 +478,7 @@ FROM insee.correspondance_clefs_champs AS c, ORDER BY fk_base, clef_json; ``` -![vm_presence_cles_annees](https://cdn.geotribu.fr/tinyfilemanager.php?p=articles-blog-rdp%2Farticles%2F2024%2Fpostgresql_json&view=vm_presence_cles_annees.png){: .img-center loading=lazy } +![vm_presence_cles_annees](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/postgresql_json/vm_presence_cles_annees.png){: .img-center loading=lazy } La seule difficulté ici est la présence de [LATERAL](https://docs.postgresql.fr/17/queries-table-expressions.html#QUERIES-FROM). Ce "mot" permet d'utiliser un champ de la requête principale dans une sous requête placée dans une clause FROM. Les éléments de la sous requête seront ensuite évalués atomiquement avant d'être joins à la table d'origine. Oui, ce n'est pas très facile à expliquer. Ici, le WHERE de la sous requête va interroger le champ données de la table "donnees_communes" pour voir si il y voit la clef_json actuellement en train d'être évaluée dans la table "correspondance_clefs_champs" possédant l'alias "c". Si oui, alors on prend la valeur minimum/maximum du champ année, et on le joint à cette ligne et uniquement cette ligne. Puis évaluation de clef_json suivante ... (*évalués atomiquement*) @@ -531,7 +531,7 @@ WITH SELECT * FROM final WHERE valeur IS NOT NULL; ``` -![vm_presence_cles_annees](https://cdn.geotribu.fr/tinyfilemanager.php?p=articles-blog-rdp%2Farticles%2F2024%2Fpostgresql_json&view=vm_donnees_olap.png){: .img-center loading=lazy } +![vm_presence_cles_annees](https://cdn.geotribu.fr/img/articles-blog-rdp/articles/2024/postgresql_json/donnees_communes.png)vm_donnees_olap.png){: .img-center loading=lazy } Attention, la création de cette vue matérialisée ou son refresh peut prendre un certain temps si vous avez stocké beaucoup de données (1 heure chez moi pour les 6 volets de 2015 à 2021).