sexta-feira, 29 de julho de 2016

Funções De Classificação - SQL Server

As funções de classificação retornam um valor de classificação para cada linha em uma partição. Dependendo da função usada, algumas linhas podem receber o mesmo valor que outras. As funções de classificação são não determinísticas.

O transact-SQL fornece as seguintes funções de classificação:

RANK

Retorna a classificação de cada linha na partição de um conjunto de resultados. A classificação de uma linha é um mais o número de classificações que vêm antes da linha em questão.

SELECT
P.ID_Produto,P.ID_Categoria,P.Quantidade, 
RANK() OVER(PARTITION BY P.ID_Categoria ORDER BY P.Quantidade DESCAS 'RANKING'
FROM
            Produtos.ProdutosInventario P
ORDER BY
            'RANKING'

*
Se duas ou mais linhas empatarem em uma classificação, cada linha empatada receberá a mesma classificação. Por exemplo, se os dois melhores vendedores tiverem o mesmo valor de SalesYTD, os dois serão classificados com o número um. O vendedor com o próximo SalesYTD maior será classificado com o número três, pois há duas linhas com classificação mais alta. Portanto, a função RANK nem sempre retorna inteiros consecutivos.

ROW_NUMBER

Este retorna o número sequencial de uma linha em uma instrução executado no conjunto de resultados, iniciando em 1 para a primeira linha de cada partição.

Observação que fique explicito o numero da linha, não tem relação com ID Da tabela em execução.

SELECT
           ROW_NUMBER OVER(ORDER BY ID_VENDA DESC) AS Row,
           Nome, SobreNome
FROM
           dbo.VENDAS

ROW Nome         SobreNome               
--- -----------  ---------------------- 
1   Linda        Mitchell               
2   Jae          Pak                    
3   Michael      Blythe                 
4   Jillian      Carson                 
5   Ranjit       Varkey Chudukatil      


Outras funções de classificação não muito comum, para complementar os estudos rs ..

Nenhum comentário:

Postar um comentário