← Tous les exercices
Une vue d'alimentation avec cumul
Partie 6 · ★★★
Livrable attendu : les requêtes ou vues d'alimentation du dashboard. On crée une vue v_kpi_jour (par jour : nombre d'annonces et nombre de pertinentes) puis on lit cette vue en y ajoutant un cumul avec une window function (tendance de l'évolution temporelle).
Complète le regroupement de la vue et l'ordre du cumul ; le résultat rows a les colonnes date_pub, nb, pertinents, cumul.
import sqlite3 con = sqlite3.connect(":memory:", isolation_level=None) con.executescript(""" CREATE TABLE marche(id INTEGER PRIMARY KEY, date_pub TEXT, localisation TEXT, niveau TEXT); INSERT INTO marche VALUES (1,'2024-03-01','IDF','élevé'),(2,'2024-03-01','Bretagne','faible'), (3,'2024-03-02','Occitanie','moyen'),(4,'2024-03-02','IDF','moyen'),(5,'2024-03-02','IDF','faible'), (6,'2024-03-03','Bretagne','élevé'),(7,'2024-03-03','Occitanie','faible'),(8,'2024-03-04','IDF','élevé'); """) con.execute(""" CREATE VIEW v_kpi_jour AS SELECT date_pub, COUNT(*) AS nb, SUM(CASE WHEN niveau <> 'faible' THEN 1 ELSE 0 END) AS pertinents FROM marche GROUP BY ___ """) rows = con.execute(""" SELECT date_pub, nb, pertinents, SUM(nb) OVER (ORDER BY ___) AS cumul FROM v_kpi_jour ORDER BY date_pub """).fetchall()
Ctrl/⌘+Entrée