# FirstSortedValue - função de gráfico

FirstSortedValue() retorna o valor da expressão especificada em value que corresponde ao resultado de classificação do argumento sort\_weight, por exemplo, o nome do produto com o menor preço de unidade. O valor nth na ordem de classificação pode ser especificado em rank. Se mais de um valor resultante compartilhar o mesmo sort\_weight para o rank, especificado, a função retorna NULL.

Sintaxe:

FirstSortedValue([{SetExpression}] [DISTINCT] [TOTAL [&lt;fld {,fld}&gt;]] value, sort\_weight [,rank])

Tipo de dados de retorno: dual

Argumentos:

Argumentos

| Argumento | Descrição |
| --- | --- |
| value | Campo de saída. A função encontra o valor da expressão value que corresponde ao resultado de classificação sort\_weight. |
| sort\_weight | Campo de entrada. 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 | Se for especificado um rank "n" maior que 1, será obtido o enésimo valor classificado. |
| SetExpression | Por padrão, a função de agregação agregará um conjunto de registros possíveis definidos pela seleção. Um conjunto de registros alternativos pode ser definido por uma expressão de análise. |
| 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. |
| TOTAL | Se a palavra TOTAL ocorrer antes dos argumentos da função, o cálculo será feito sobre todos os valores possíveis, dadas as seleções atuais, e não apenas sobre os pertinentes ao valor dimensional atual, isto é, desconsiderando as dimensões do gráfico.<br><br>Usando TOTAL [&lt;fld {.fld}&gt;], em que o qualificador TOTAL é seguido por uma lista de um ou mais nomes de campo como um subconjunto das variáveis de dimensão de gráfico, você cria um subconjunto dos valores possíveis totais.<br><br>[Definindo o escopo de agregação](https://help.qlik.com/pt-BR/sense/November2024/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

Exemplos e resultados:

Dados

| Customer | Product | UnitSales | UnitPrice |
| --- | --- | --- | --- |
| Astrida | AA | 4 | 16 |
| Astrida | AA | 10 | 15 |
| Astrida | BB | 9 | 9 |
| Betacab | BB | 5 | 10 |
| Betacab | CC | 2 | 20 |
| Betacab | DD | - | 25 |
| Canutility | AA | 8 | 15 |
| Canutility | CC | - | 19 |

Exemplos e resultados

| Exemplo | Resultado |
| --- | --- |
| `firstsortedvalue (Product, UnitPrice)` | BB, que é o `Product`com o menor `UnitPrice`(9). |
| `firstsortedvalue (Product, UnitPrice, 2)` | BB, que é o `Product`com o segundo menor `UnitPrice`(10). |
| `firstsortedvalue (Customer, -UnitPrice, 2)` | Betacab, que é o `Customer`com o `Product` com o segundo maior `UnitPrice`(20). |
| `firstsortedvalue (Customer, UnitPrice, 3)` | NULL, porque existem dois valores de `Customer` (Astrida eCanutility) com o mesmo rank (terceiro menor) `UnitPrice`(15).<br><br>Use o qualificador distinct para se certificar de que resultados nulos não ocorrerão. |
| `firstsortedvalue (Customer, -UnitPrice*UnitSales, 2)` | Canutility, que é o `Customer` com o segundo maior valor de ordem de venda `UnitPrice` multiplicado por `UnitSales` (120). |

Dados usados nos exemplos:

`ProductData:` `LOAD * inline [` `Customer|Product|UnitSales|UnitPrice` `Astrida|AA|4|16` `Astrida|AA|10|15` `Astrida|BB|9|9` `Betacab|BB|5|10` `Betacab|CC|2|20` `Betacab|DD||25` `Canutility|AA|8|15` `Canutility|CC||19` `] (delimiter is '|');`

## Saiba mais

* [Análise de conjunto](https://help.qlik.com/pt-BR/sense/November2024/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-analysis-expressions.htm)
* [Definindo o escopo de agregação](https://help.qlik.com/pt-BR/sense/November2024/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm)