Logo

O comando WITH ROLLLUP em bancos de dados MySQL

Como agrupar e totalizar dados de forma hierárquica com exemplos práticos em MySQL.

O comando WITH ROLLLUP é muito útil para analisar dados em diferentes níveis de granularidade. Por exemplo, podemos utilizar esse recurso para agrupar os dados por região, cidade e produto, obtendo um resultado hierárquico que mostra as vendas totais de cada produto em cada cidade e região, bem como as vendas totais de cada cidade em cada região e as vendas totais de cada região.

A sintaxe básica do comando WITH ROLLLUP é a seguinte:

SELECT coluna1, coluna2, ..., colunaN, funcao_agregacao(coluna)
FROM tabela
GROUP BY coluna1, coluna2, ..., colunaN WITH ROLLLUP;

Nessa sintaxe, "coluna1", "coluna2", ..., "colunaN" são as colunas que serão utilizadas para agrupar os dados, "funcao_agregacao" é a função de agregação que será aplicada sobre as colunas selecionadas e "tabela" é a tabela que contém os dados a serem analisados.

Para entender melhor como utilizar o comando WITH ROLLLUP, vamos ver alguns exemplos práticos.

Exemplo 1:

Suponha que temos uma tabela "vendas" com as colunas "regiao", "cidade", "produto" e "valor". Queremos obter o total de vendas por região, cidade e produto, bem como o total de vendas por cidade e região, e o total geral de vendas.

SELECT regiao, cidade, produto, SUM(valor) AS total
            FROM vendas
            GROUP BY regiao, cidade, produto WITH ROLLLUP;

O resultado dessa consulta será o seguinte:

Nesse exemplo, utilizamos a função SUM para totalizar o valor das vendas em cada região, cidade e produto. O resultado é um conjunto de dados hierárquico que mostra as vendas totais de cada produto em cada cidade e região, bem como as vendas totais de cada cidade em cada região e o total geral de vendas.

Região Cidade Produto Total
Sul Curitiba Arroz 12000.00
Curitiba Feijão 14000.00
Curitiba Total 26000.00
Sul Florianópolis Arroz 8000.00
Florianópolis Feijão 10000.00
Florianópolis Total 18000.00
Sul Porto Alegre Arroz 9000.00
Porto Alegre Feijão 11000.00
Porto Alegre Total 20000.00
Total 64000.00
141000.00

Nesse exemplo, utilizamos a função SUM para totalizar o valor das vendas em cada região, cidade e produto. O resultado é um conjunto de dados hierárquico que mostra as vendas totais de cada produto em cada cidade e região, bem como as vendas totais de cada cidade em cada região e o total geral de vendas.

Conclusão

O comando WITH ROLLLUP é uma ferramenta útil para a criação de consultas hierárquicas em bancos de dados MySQL. Ele permite que os dados sejam agrupados hierarquicamente e que os totais sejam calculados para cada nível da hierarquia, bem como para o total geral. Isso pode ser especialmente útil para a criação de relatórios e dashboards que mostram informações de resumo sobre grandes conjuntos de dados.

Referências