Fiches pratiques · Data, BI & données de référence · SQL

SQL : SELECT, WHERE, GROUP BY

Logiciel

Interroger une base de données relationnelle.

Principe

SELECT choisit les colonnes, FROM la table, WHERE filtre les lignes, GROUP BY regroupe avec des agrégats (SUM, COUNT, AVG), HAVING filtre les groupes, ORDER BY trie. C'est le langage commun de toutes les bases (SQL Server, Oracle, PostgreSQL, HANA).

Comprendre pas à pas

1. La situation

Un analyste supply chain demande chaque semaine au service informatique la liste des commandes en retard. Il attend 3 jours à chaque fois. Il a un accès en lecture à la base du WMS. Question : comment interroger lui-même une base avec SQL ?

2. Une requête et ses clauses

ClauseRôleExemple
SELECTcolonnes à afficherSELECT commande, client, date_prevue, statut
FROMtableFROM commandes
WHEREfiltre sur les lignesWHERE date_prevue < CURRENT_DATE AND statut <> 'EXPEDIEE'
GROUP BYregroupementGROUP BY client
HAVINGfiltre sur les groupesHAVING COUNT(*) > 5
ORDER BYtriORDER BY date_prevue

3. L'idée

SQL est le langage d'interrogation des bases de données relationnelles (ERP, WMS, TMS). Une requête SELECT choisit des colonnes, filtre des lignes, regroupe et trie. Quelques clauses suffisent pour l'essentiel des besoins d'analyse. On travaille en lecture seule, si possible sur une copie de la base.

SELECT client, COUNT(*) AS nb_retards FROM commandes WHERE date_prevue < CURRENT_DATE AND statut <> 'EXPEDIEE' GROUP BY client ORDER BY nb_retards DESC

L'ordre d'exécution logique : FROM, WHERE, GROUP BY, HAVING, SELECT, ORDER BY.

4. Les requêtes construites

Commandes en retard. Filtre sur la date prévue et le statut.

Retards par client. Regroupement et comptage, tri décroissant.

Clients à plus de 5 retards. HAVING sur le comptage.

Résultat. La liste est disponible chaque lundi en 2 minutes, au lieu de 3 jours d'attente.

5. À vous de jouer : vos bases SQL

6. Ce qu'il faut retenir

  • SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY.
  • WHERE filtre les lignes, HAVING filtre les groupes.
  • Travailler en lecture seule.

Mise en œuvre

Acteurs
Analystes
Durée
Apprentissage de quelques jours
Livrables
Usage maîtrisé, gains mesurés
  1. Identifier tables et colonnesAvec la documentation ou l'informatique.
  2. Écrire pas à pasSELECT, FROM, WHERE, GROUP BY.
  3. Vérifier sur un cas connuTotal comparé à un rapport existant.
  4. Respecter la productionRequêtes lourdes hors heures de pointe.

Exemple d'application

SELECT article, SUM(quantite) FROM mouvements WHERE type = 'SORTIE' AND date >= '2026-01-01' GROUP BY article ORDER BY 2 DESC : consommations de l'année triées.

Points de vigilance

  • Requêtes lourdes sur la base de production en pleine journée