SELECT, WHERE, GROUP BY
Agrégerez les données de campagne.
SELECT, WHERE, GROUP BY est une leçon Digital Marketing Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Digital Marketing Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Digital Marketing Academy comprend 4 leçons au total.
Les trois verbes
Presque tous les indicateurs marketing sont construits à partir de trois clauses : SELECT choisit les colonnes, WHERE filtre les lignes et GROUP BY regroupe les lignes en segments.
Maîtrisez ce trio et vous pourrez répondre seul à la plupart des questions d'analyse courantes.
SELECT channel, SUM(revenue) AS revenue
FROM orders
GROUP BY channel;SELECT : choisir les colonnes
SELECT indique les éléments que vous souhaitez obtenir. Vous pouvez renommer les colonnes avec AS pour rendre le résultat plus lisible et calculer de nouvelles valeurs directement dans la requête.
Gardez les ensembles de résultats concis : récupérez uniquement les colonnes dont vous avez réellement besoin, surtout dans les grandes tables.
SELECT campaign_id AS campaign,
spend,
spend * 1.2 AS spend_with_fees
FROM campaigns;WHERE : filtrer les lignes
WHERE ne conserve que les lignes qui correspondent à une condition. Combinez les conditions avec AND et OR pour cibler précisément un segment.
Les filtres de date sont indispensables aux spécialistes du marketing : ils définissent précisément la période de reporting.
SELECT *
FROM sessions
WHERE channel = 'email'
AND session_date >= DATE '2026-01-01'
AND device = 'mobile';Filtrer avec IN et BETWEEN
IN correspond à n'importe quelle valeur d'une liste, ce qui est parfait pour plusieurs campagnes à la fois. BETWEEN couvre un intervalle, idéal pour les périodes définies par des dates.
Ces opérateurs permettent de garder des filtres complexes courts et lisibles, plutôt que de longues suites de OR.
SELECT order_id, revenue
FROM orders
WHERE channel IN ('paid_search', 'paid_social')
AND order_date BETWEEN DATE '2026-03-01' AND DATE '2026-03-31';GROUP BY : segmenter
GROUP BY regroupe en une seule ligne les lignes qui partagent une valeur. Associez-le à des fonctions d'agrégation comme SUM, COUNT et AVG pour obtenir des indicateurs par segment.
C'est ainsi que vous transformez des événements bruts en un tableau de performances canal par canal.
SELECT channel,
COUNT(*) AS sessions,
SUM(revenue) AS revenue
FROM sessions
GROUP BY channel;Fonctions d'agrégation
SUM totalise le chiffre d'affaires, COUNT dénombre les événements, AVG calcule la moyenne et COUNT(DISTINCT ...) compte les utilisateurs uniques.
Les décomptes distincts sont importants en marketing : le nombre total de sessions et le nombre de visiteurs uniques sont des chiffres très différents.
SELECT campaign_id,
COUNT(*) AS clicks,
COUNT(DISTINCT user_id) AS reach,
AVG(revenue) AS avg_order
FROM orders
GROUP BY campaign_id;Regroupement sur plusieurs colonnes
Regroupez selon plusieurs colonnes pour créer une matrice, par exemple le canal par appareil. Chaque combinaison unique devient sa propre ligne.
Cela permet une segmentation plus approfondie sans rien exporter vers un tableur.
SELECT channel, device,
COUNT(*) AS sessions
FROM sessions
GROUP BY channel, device
ORDER BY channel, sessions DESC;HAVING : filtrer les groupes
WHERE filtre les lignes avant le regroupement ; HAVING filtre les groupes après l’agrégation. Utilisez HAVING pour ne conserver que les segments qui dépassent un seuil.
Par exemple, affichez uniquement les campagnes ayant généré plus de 100 commandes.
SELECT campaign_id, COUNT(*) AS orders
FROM orders
GROUP BY campaign_id
HAVING COUNT(*) > 100
ORDER BY orders DESC;Trier et limiter
ORDER BY trie les résultats afin de faire apparaître les lignes les plus importantes en premier. LIMIT plafonne le nombre de résultats affichés, ce qui est idéal pour les rapports présentant les N premiers résultats.
Ensemble, ils répondent instantanément à la question « quelles sont mes 5 meilleures campagnes par chiffre d’affaires ? »
SELECT campaign_id, SUM(revenue) AS revenue
FROM orders
GROUP BY campaign_id
ORDER BY revenue DESC
LIMIT 5;Agrégation conditionnelle
FILTER (ou CASE à l’intérieur d’une fonction d’agrégation) permet à une seule requête de calculer plusieurs métriques conditionnelles à la fois, comme le chiffre d’affaires des nouveaux clients et celui des clients existants.
Cela évite d’exécuter plusieurs requêtes et garantit un alignement parfait des segments.
SELECT channel,
SUM(revenue) FILTER (WHERE is_new_customer) AS new_rev,
SUM(revenue) FILTER (WHERE NOT is_new_customer) AS repeat_rev
FROM orders
GROUP BY channel;Tout assembler
Une requête complète superpose toutes les clauses : filtrer les lignes avec WHERE, les regrouper, filtrer les groupes avec HAVING, puis trier et limiter les résultats.
Lisez-la de haut en bas : elle raconte une analyse complète de vos canaux.
SELECT channel, SUM(revenue) AS revenue
FROM orders
WHERE order_date >= CURRENT_DATE - INTERVAL '30 days'
GROUP BY channel
HAVING SUM(revenue) > 1000
ORDER BY revenue DESC;Vérification rapide
Vous ne voulez conserver que les groupes de campagnes ayant plus de 50 commandes. Quelle clause filtre les groupes agrégés ?
Récapitulatif
SELECT sélectionne les colonnes, WHERE filtre les lignes, GROUP BY segmente les données, HAVING filtre les groupes, et ORDER BY avec LIMIT structurent le résultat.
Avec l’agrégation conditionnelle, vous calculez plusieurs métriques en un seul parcours. Ensuite : combiner les données de plusieurs tables avec des JOIN.
Apprends Digital Marketing Academy avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 63
- Leçons
- 239
Questions Fréquemment Posées
La leçon « SELECT, WHERE, GROUP BY » est-elle gratuite ?
Oui — le texte complet de « SELECT, WHERE, GROUP BY » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Digital Marketing Academy, passe à CoddyKit PRO. Le cours Digital Marketing Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « SELECT, WHERE, GROUP BY » ?
Agrégerez les données de campagne. Tu pratiques Digital Marketing Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Digital Marketing Academy ?
Aucune expérience préalable n'est requise. Digital Marketing Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « SELECT, WHERE, GROUP BY » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Digital Marketing Academy ?
Oui. Chaque leçon Digital Marketing Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Pourquoi les spécialistes du marketing apprennent le SQL
- SELECT, WHERE, GROUP BY
- Relier des tables marketing
- Requêtes par cohortes et entonnoirs