Agrégations
#Agrégations
Fonctions: COUNT
, SUM
, AVG
, MIN
, MAX
; GROUP BY
et HAVING
.
sqlsql
1select count(*) as n from users;
Par groupe:
sqlsql
1create table orders(id int, user_id int, amount real);2insert into orders values (1,1,19.9),(2,1,5.0),(3,2,12.0);3select user_id, count(*) as n, sum(amount) as total4from orders5group by user_id6having total > 10;
#Playground
#Exercice : Agrégations avancées avec window functions
Implémentez des requêtes SQL utilisant des fonctions d'agrégation avancées pour analyser les données de commandes.
#Instructions
- Utilisez des window functions pour calculer des agrégats sans GROUP BY.
- Calculez le total cumulé des commandes par utilisateur.
- Trouvez le classement des commandes par montant dans chaque groupe d'utilisateurs.
- Calculez la moyenne mobile sur les 3 dernières commandes.
#Exemple de requête
sqlsql
1-- Création des tables de démonstration2create table users(id int, name text);3create table orders(id int, user_id int, amount real, order_date date);4 5-- Insertion de données6insert into users values (1, 'Alice'), (2, 'Bob'), (3, 'Charlie');7insert into orders values 8(1, 1, 100.0, '2023-01-01'),9(2, 1, 150.0, '2023-01-02'),10(3, 2, 200.0, '2023-01-03'),11(4, 1, 75.0, '2023-01-04'),12(5, 2, 300.0, '2023-01-05'),13(6, 3, 50.0, '2023-01-06');14