Menu
Coddy logo textTech

Pivoter les lignes en colonnes

Fait partie de la section Au-delà des bases du Journey SQL de Coddy. Leçon 14 sur 27.

Combinez l’agrégation conditionnelle avec GROUP BY pour transformer les lignes en colonnes. C’est la version SQL d’un tableau croisé dynamique.

Supposons que sales contienne des lignes telles que (month, product, units). Pour voir une ligne par mois avec une colonne par produit :

SELECT
    month,
    SUM(CASE WHEN product = 'A' THEN units ELSE 0 END) AS product_a,
    SUM(CASE WHEN product = 'B' THEN units ELSE 0 END) AS product_b
FROM sales
GROUP BY month

Le compartiment GROUP BY que voit chaque SUM(CASE …) correspond aux lignes d’un mois ; le CASE sélectionne la partie correspondant à un produit.

challenge icon

Défi

Facile

Tables et colonnes disponibles :

  • sales : month, product, units

Transformez les données afin que chaque ligne corresponde à un month avec ces colonnes :

  • month
  • apples : total de units pour le produit 'apples' ce mois-là
  • bananas : même chose pour 'bananas'
  • cherries : même chose pour 'cherries'
  • total : total de units pour tous les produits ce mois-là

Retournez uniquement les mois dont le total est au moins égal à 20. Triez par month.

Essayez vous-même

SELECT month,
       -- un SUM(CASE ...) par produit, plus le total
FROM sales
GROUP BY month
-- filtrer les mois avec total >= 20
ORDER BY month
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Au-delà des bases

Entraînez-vous par vous-même : Playground SQL