Ir para conteúdo principal

FirstSortedValue - função de script

A função FirstSortedValue() retorna o valor da expressão especificada em value que corresponde ao resultado da classificação do argumento sort_weight, levando em consideração o rank, se especificado. Se mais de um valor resultante compartilhar o mesmo sort_weight para o rank, especificado, a função retorna NULL.

Os valores classificados são iterativos em número de registros, como definidos por uma cláusula group by, ou agregados em um conjunto de dados completo se nenhuma cláusula group by for definida.

Sintaxe:  

FirstSortedValue ([ distinct ] value, sort-weight [, rank ])

Tipo de dados de retorno: dual

Argumentos:  

Argumentos FirstSortedValue
Argumento Descrição
value Expression A função encontra o valor da expressão value que corresponde ao resultado de classificação sort_weight.
sort-weight Expression A expressão que contém os dados que serão classificados. O primeiro valor (mais baixo) de sort_weight é encontrado, a partir do qual o valor correspondente da expressão value é determinado. Ao colocar um sinal de menos na frente de sort_weight, a função retorna o último (mais alto) valor classificado em seu lugar.
rank Expression

Se for especificado um rank "n" maior que 1, será obtido o enésimo valor classificado.

distinct

Se a palavra DISTINCT aparecer antes dos argumentos de função, as duplicatas resultantes da avaliação dos argumentos de função serão ignoradas.

Exemplos e resultados:  

Adicione o script de exemplo ao seu documento e execute-o. Em seguida, adicione pelo menos os campos listados na coluna de resultados a um documento para ver o resultado.

Exemplo 1:  

Temp:

LOAD * inline [

Customer|Product|OrderNumber|UnitSales|CustomerID

Astrida|AA|1|10|1

Astrida|AA|7|18|1

Astrida|BB|4|9|1

Astrida|CC|6|2|1

Betacab|AA|5|4|2

Betacab|BB|2|5|2

Betacab|DD|12|25|2

Canutility|AA|3|8|3

Canutility|CC|13|19|3

Divadip|AA|9|16|4

Divadip|AA|10|16|4

Divadip|DD|11|10|4

] (delimiter is '|');

 

FirstSortedValue:

LOAD Customer,FirstSortedValue(Product, UnitSales) as MyProductWithSmallestOrderByCustomer Resident Temp Group By Customer;

 

Resultados do exemplo 1
Campo de resultado (cliente) Valor do resultado (MyProductWithSmallestOrderByCustomer)
Astrida CC
Betacab AA
Canutilidade AA
Divadip DD

A função classifica o UnitSales do menor para o maior, procurando o valor de Customer com o menor valor de UnitSales, o menor pedido.

Como CC corresponde ao menor valor de pedido (valor de UnitSales=2) para o cliente Astrida. AA corresponde ao menor pedido (4) para o cliente Betacab, AA corresponde ao menor pedido (8) para o clienteCanutility, e DD corresponde ao menor pedido (10) para o clienteDivadip.

Exemplo 2:  

Dado que a tabela Temp é carregada como no exemplo anterior:

LOAD Customer,FirstSortedValue(Product, -UnitSales) as MyProductWithLargestOrderByCustomer Resident Temp Group By Customer;

 

Resultados do exemplo 2
Campo de resultado (cliente) Valor do resultado (MyProductWithLargestOrderByCustomer)
Astrida AA
Betacab DD
Canutilidade CC
Divadip -

Um sinal de menor precede o argumento sort_weight, assim a função classifica primeiro o maior.

Porque AA corresponde ao maior pedido (valor de UnitSales:18) do cliente Astrida, DD corresponde ao maior pedido (12) do cliente Betacab e CC corresponde ao maior pedido (13) do cliente Canutility. Há dois valores idênticos no maior pedido (16) para o cliente Divadip, portanto, isso produz um resultado nulo.

Exemplo 3:  

Dado que a tabela Temp é carregada como no exemplo anterior:

LOAD Customer,FirstSortedValue(distinct Product, -UnitSales) as MyProductWithSmallestOrderByCustomer Resident Temp Group By Customer;

 

Resultados do exemplo 3
Campo de resultado (cliente) Valor do resultado (MyProductWithLargestOrderByCustomer)
Astrida AA
Betacab DD
Canutilidade CC
Divadip AA

É o mesmo que o exemplo anterior, exceto que o qualificador distinct é usado. Isso causa resultado duplicado para Divadip ser desconsiderado, permitindo que seja retornado um valor não nulo.

Esta página ajudou?

Se você encontrar algum problema com esta página ou seu conteúdo - um erro de digitação, uma etapa ausente ou um erro técnico - informe-nos como podemos melhorar!

Participe do Programa de Modernização do Analytics

Remove banner from view

Modernize sem comprometer seus valiosos aplicativos QlikView com o Programa de Modernização do Analytics. Clique aqui para mais informações ou entre em contato: ampquestions@qlik.com