Menu
Coddy logo textTech

Porcentagem do Total

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

A participação de cada linha no total é um clássico das funções de janela: divida o valor da linha pela SUM da mesma coluna em toda a janela.

SELECT product, revenue,
       revenue * 100.0 / SUM(revenue) OVER () AS pct
FROM sales

Um OVER () vazio significa “todo o conjunto de resultados”. Adicione um PARTITION BY para calcular a proporção dentro de um grupo (por exemplo, OVER (PARTITION BY category) para a proporção dentro de cada categoria).

Multiplique por 100.0 (não por 100) para que a divisão continue sendo de ponto flutuante. Caso contrário, a divisão inteira do SQLite arredondaria pequenas participações para zero.

challenge icon

Desafio

Fácil

Tabelas e colunas disponíveis:

  • sales: category, product, revenue

Para cada linha, retorne:

  • category
  • product
  • revenue
  • pct_of_category: a participação do produto na receita dentro de sua categoria, arredondada para 1 casa decimal

Use um PARTITION BY na janela. Ordene por category e, em seguida, por pct_of_category em ordem decrescente.

Experimente você mesmo

SELECT category, product, revenue,
       -- pct como uma participação dentro da categoria, use PARTITION BY
FROM sales
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