Menu
Coddy logo textTech

Transformando Linhas em Colunas

Parte da seção Além do Básico do Journey de SQL da Coddy. Lição 14 de 27.

Combine agregação condicional com GROUP BY para transformar linhas em colunas. É a versão do SQL de uma tabela dinâmica.

Suponha que sales tenha linhas como (month, product, units). Para ver uma linha por mês com uma coluna por produto:

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

O agrupamento GROUP BY que cada SUM(CASE …) vê corresponde às linhas de um mês; o CASE seleciona a parte referente a um produto.

challenge icon

Desafio

Fácil

Tabelas e colunas disponíveis:

  • sales: month, product, units

Transforme os dados para que cada linha seja um month com estas colunas:

  • month
  • apples: total de units para o produto 'apples' naquele mês
  • bananas: o mesmo para 'bananas'
  • cherries: o mesmo para 'cherries'
  • total: total de units considerando todos os produtos daquele mês

Retorne apenas os meses cujo total seja pelo menos 20. Ordene por month.

Experimente você mesmo

SELECT month,
       -- um SUM(CASE ...) por produto, mais o total
FROM sales
GROUP BY month
-- filtrar para meses com total >= 20
ORDER BY month
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Além do Básico

Pratique por conta própria: Playground de SQL