Aller au contenu principal

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

  1. Utilisez des window functions pour calculer des agrégats sans GROUP BY.
  2. Calculez le total cumulé des commandes par utilisateur.
  3. Trouvez le classement des commandes par montant dans chaque groupe d'utilisateurs.
  4. 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