SQLite PERCENT_RANK

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 restá 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 BYcláusula divide as linhas em partições às quais a função se aplica. A PARTITION BYcláusula é opcional. Se você omitir a PARTITION BYcláusula, a função tratará todo o conjunto de resultados como uma única partição.

 ORDER BY

A ORDER BYcláusula especifica a ordem das linhas em cada partição à qual a função se aplica. A ORDER BYclá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  trackstabela 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:

SQLite PERCENT_RANK com cláusula ORDER BY

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:

Exemplo SQLite PERCENT_RANK

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:

SQLite PERCENT_RANK com exemplo PARTITION BY

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.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *