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 SQL de uma tabela dinâmica de planilha.

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ê são as linhas de um mês; o CASE seleciona a fatia para um produto.

challenge icon

Desafio

Fácil

Tabelas e colunas disponíveis:

  • <strong>sales</strong>: <strong>month</strong>, <strong>product</strong>, <strong>units</strong>

Pivoteie 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 de todos os produtos naquele 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