Resumo : neste tutorial, você aprenderá como usar a PERCENT_RANK()
função SQLite para calcular a classificação percentual de uma linha em um conjunto de resultados ordenado.
Introdução à PERCENT_RANK()
função
É PERCENT_RANK()
uma função de janela que calcula a classificação percentual de uma determinada linha usando a seguinte fórmula:
(r - 1) / (the number of rows in the window or partition - r)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
onde r
está a classificação da linha atual.
A PERCENT_RANK()
função retorna um valor que varia de 0 a 1. A primeira linha de qualquer conjunto tem a classificação percentual de 0.
Aqui está a sintaxe da PERCENT_RANK()
função:
PERCENT_RANK()
OVER (
[PARTITION BY partition_expression]
[ORDER BY order_list]
)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Nesta sintaxe:
()
A PERCENT_RANK()
função não aceita argumentos. No entanto, são necessários parênteses vazios.
PARTITION BY
A PARTITION BY
cláusula divide as linhas em partições às quais a função se aplica. A PARTITION BY
cláusula é opcional. Se você omitir a PARTITION BY
cláusula, a função tratará todo o conjunto de resultados como uma única partição.
ORDER BY
A ORDER BY
cláusula especifica a ordem das linhas em cada partição à qual a função se aplica. A ORDER BY
cláusula também é opcional. Se você pular, a função retornará zero para todas as linhas.
PERCENT_RANK()
Exemplo de função SQLite
Usaremos a tracks
tabela a seguir do banco de dados de exemplo para a demonstração.
Usando SQLite PERCENT_RANK()
no exemplo do conjunto de resultados da consulta
A instrução a seguir usa a PERCENT_RANK()
função para encontrar a classificação percentual da duração de cada faixa no ID do álbum 1:
SELECT
Name,
Milliseconds,
PERCENT_RANK() OVER(
ORDER BY Milliseconds
) LengthPercentRank
FROM
tracks
WHERE
AlbumId = 1;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Aqui está a saída:
Para tornar a saída mais legível, você pode usar a printf()
função para formatar as classificações percentuais:
SELECT
Name,
Milliseconds,
printf('%.2f',PERCENT_RANK() OVER(
ORDER BY Milliseconds
)) LengthPercentRank
FROM
tracks
WHERE
AlbumId = 1;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A saída é a seguinte:
Usando SQLite PERCENT_RANK()
no exemplo de partição
A instrução a seguir usa a PERCENT_RANK()
função para calcular a classificação percentual do tamanho da faixa em cada álbum:
SELECT
AlbumId,
Name,
Bytes,
printf('%.2f',PERCENT_RANK() OVER(
PARTITION BY AlbumId
ORDER BY Bytes
)) SizePercentRank
FROM
tracks;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A imagem a seguir mostra a saída:
Neste tutorial, você aprendeu como usar a PERCENT_RANK()
função SQLite para calcular a classificação percentual de uma linha em um conjunto de resultados ordenado.