# FirstSortedValue Función de script

FirstSortedValue() devuelve el valor de la expresión especificada en value que corresponde al resultado de ordenar el argumento sort\_weight, por ejemplo, el nombre del producto con el precio unitario más bajo. El enésimo valor según el criterio de ordenación, se puede especificar en rank. Si más de un valor resultante comparten el mismo sort\_weight para el rank especificado, la función devuelve NULL. Los valores ordenados se repiten en una serie de registros, según lo definido por una cláusula group by, o se agregan en todo el conjunto de datos si no se define ninguna cláusula group by.

Sintaxis:

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

Tipo de datos que devuelve: dual

Argumentos:

Argumentos

| Argumento | Descripción |
| --- | --- |
| value Expression | La función encuentra el valor de la expresión value que corresponde al resultado de la ordenación sort\_weight. |
| sort-weight Expression | La expresión que contiene los datos que se han de ordenar. Se encuentra el primer valor (el más bajo) de sort\_weight, a partir del cual se determina el valor correspondiente de la expresión value. Si coloca un signo menos delante de sort\_weight, la función devuelve el último valor ordenado (el más alto) en su lugar. |
| rank Expression | Al indicar un rank "n" mayor que 1, se obtiene el enésimo valor ordenado. |
| distinct | Si la palabra DISTINCT aparece antes de los argumentos de la función, los duplicados resultantes de evaluar los argumentos de la función se descartan. |

Ejemplos y resultados:

Agregue el script de ejemplo a su aplicación y ejecútelo. A continuación, agregue, como mínimo, los campos listados en la columna de resultados a una hoja en nuestra aplicación para ver el resultado.

Para tener el mismo aspecto que en la columna inferior de resultados, en el panel de propiedades, bajo Ordenar, cambie de Auto a Personalizado, a continuación deseleccione el orden numérico y alfabético.

Ejemplos de script

| Ejemplo | Resultado |
| --- | --- |
| `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;<br>` | ` Customer MyProductWithSmallestOrderByCustomer  ` `Astrida CC` `Betacab AA` `Canutility AA` `Divadip DD`<br><br>La función ordena UnitSales de menor a mayor, buscando el valor de Customer con el menor valor de UnitSales, el orden más pequeño.<br><br>Porque CC se corresponde con el menor valor (valor de UnitSales=2) para el cliente Astrida. AA corresponde al pedido más pequeño (4) para el cliente Betacab, AA corresponde al pedido más pequeño (8) para el cliente Canutility y DD corresponde al pedido más pequeño (10) para el cliente Divadip.. |
| Dado que la tabla Temp se carga como en el ejemplo anterior:<br><br>`LOAD  Customer,FirstSortedValue(Product, -UnitSales) as MyProductWithLargestOrderByCustomer Resident Temp Group By Customer;` | ` Customer MyProductWithLargestOrderByCustomer  ` `Astrida AA` `Betacab DD` `Canutility CC` `Divadip -`<br><br>Un signo menos precede al argumento sort\_weight, así que la función ordena el más grande primero.<br><br>Porque AA corresponde al pedido más grande (valor de UnitSales:18) para el cliente Astrida, DD corresponde al pedido más grande (12) para el cliente Betacab y CC corresponde al pedido más grande (13) para el cliente Canutility. Hay dos valores idénticos para el pedido más grande (16) para el cliente Divadip, por lo tanto esto da un resultado nulo. |
| Dado que la tabla Temp se carga como en el ejemplo anterior:<br><br>`LOAD  Customer,FirstSortedValue(distinct Product, -UnitSales) as MyProductWithSmallestOrderByCustomer Resident Temp Group By Customer;` | ` Customer MyProductWithLargestOrderByCustomer  ` `Astrida AA` `Betacab DD` `Canutility CC` `Divadip AA`<br><br>Esto es igual al ejemplo anterior, excepto en que se utiliza el cualificador distinct. Esto hace que se descarte el resultado duplicado de Divadip, permitiendo que devuelva un valor no nulo. |