Guides SQL

Projet SQL débutant : analyser les ventes pas à pas

Une responsable de boutique demande quelle ville réalise le plus de chiffre d’affaires. Avant de construire un rapport, définissons ce qui est vendu, ce que représente une ligne et comment contrôler le total.

Ce mini-exemple gratuit utilise six ventes fictives en euros. Chaque ligne correspond à une vente finalisée ; les annulations, remboursements et taxes sont hors de ce périmètre. Il prépare à la démarche du projet guidé, qui possède son propre jeu de données.

1. Comprendre les données avant la requête

sale_id identifie la vente ; city indique la ville ; channel distingue la boutique (store) du site (online) ; amount contient le montant en euros. L’identifiant unique permet de vérifier qu’une vente n’est pas comptée deux fois.

Données fictives de l’exemple — sales (EUR)
sale_idcitychannelamount
1Parisstore120
2Lyononline80
3Parisonline180
4Lillestore50
5Lyonstore100
6Lilleonline70

2. Transformer la question en étapes

  1. Partir de la table sales : une ligne représente une vente.
  2. Regrouper par city pour obtenir une ligne par ville.
  3. Additionner amount avec SUM pour calculer le chiffre d’affaires.
  4. Trier le résultat du montant le plus élevé au plus faible.

3. Exécuter la première analyse SQL

Dialecte : PostgreSQL. SELECT, SUM, GROUP BY et ORDER BY sont largement partagés entre moteurs SQL.

Requête à essayer
SELECT city, SUM(amount) AS revenue
FROM sales
GROUP BY city
ORDER BY revenue DESC, city;

Simulateur SQL dans le navigateur

3. Exécuter la première analyse SQL

Exécutez une requête de lecture sur les données fictives de cet exercice. Rien n’est envoyé à SQL.tn.

Local et privé
Raccourci : Ctrl/⌘ + Entrée
Le simulateur sera préparé à la première exécution.

4. Vérifier le résultat avant de conclure

Paris totalise 300 €, Lyon 180 € et Lille 120 €. Leur somme vaut 600 €, comme celle des six ventes. Les villes ont chacune deux ventes : COUNT(*) mesurerait leur nombre, pas leur chiffre d’affaires.

5. Faites évoluer votre analyse

Ne gardez que le canal online. Placez le filtre avant GROUP BY. Le total doit devenir 330 € : Paris 180 €, Lyon 80 € et Lille 70 €. Si un total change, expliquez quel périmètre vous avez modifié.

Un indice

Ajoutez WHERE channel = 'online' entre FROM sales et GROUP BY city.

Continuez dans le projet guidé

Vous venez de pratiquer la lecture, le regroupement et le contrôle d’un résultat. Créez un compte gratuit pour retrouver les missions du projet ventes et sauvegarder votre progression. Cet essai ne valide pas automatiquement les missions du projet.