# FirstSortedValue - 스크립트 함수

FirstSortedValue()는 단위 가격이 가장 낮은 제품의 이름 등과 같이 sort\_weight 인수의 정렬 결과에 해당하는 value에서 지정된 표현식으로부터의 값을 반환합니다. 정렬 순서의 n번째 값은 rank에서 지정할 수 있습니다. 둘 이상의 결과 값이 지정된 rank에 대해 동일한 sort\_weight를 공유하는 경우, 해당 함수는 NULL을 반환합니다. 정렬된 값은 group by 절로 정의된 레코드 수에 대해 반복되거나, group by 절이 정의되지 않은 경우 전체 데이터 셋에 대해 집계됩니다.

구문:

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

반환 데이터 유형: dual

인수:

인수

| 인수 | 설명 |
| --- | --- |
| value Expression | 이 함수는 sort\_weight를 정렬한 결과에 해당하는 value 표현식의 값을 찾습니다. |
| sort-weight Expression | 저장할 데이터가 포함된 표현식입니다. 해당하는 value 표현식 값을 결정할 sort\_weight의 첫 번째(가장 낮은) 값을 찾습니다. sort\_weight 앞에 빼기 기호가 있는 경우, 이 함수는 마지막(가장 높은) 정렬 값을 반환합니다. |
| rank Expression | rank "n"을 1보다 큰 수로 지정하면 정렬된 n번째 값을 얻을 수 있습니다. |
| distinct | 함수 인수 앞에 DISTINCT라는 단어가 있을 경우 해당 함수 인수의 평가 결과로 생성된 중복이 무시됩니다. |

예 및 결과:

예제 스크립트를 앱에 추가하고 실행합니다. 그런 다음, 결과를 보기 위해 결과 열에 나열된 필드를 앱의 시트에 추가합니다.

아래의 결과 열과 동일한 결과를 얻으려면 속성 패널의 정렬 아래에서 자동을 사용자 지정으로 전환한 후 숫자순 및 사전순 정렬을 선택 취소합니다.

스크립팅 예

| 예 | 결과 |
| --- | --- |
| `Temp:`<br>`LOAD * inline [`<br>`Customer\|Product\|OrderNumber\|UnitSales\|CustomerID`<br>`Astrida\|AA\|1\|10\|1`<br>`Astrida\|AA\|7\|18\|1`<br>`Astrida\|BB\|4\|9\|1`<br>`Astrida\|CC\|6\|2\|1`<br>`Betacab\|AA\|5\|4\|2`<br>`Betacab\|BB\|2\|5\|2`<br>`Betacab\|DD\|12\|25\|2`<br>`Canutility\|AA\|3\|8\|3`<br>`Canutility\|CC\|13\|19\|3`<br>`Divadip\|AA\|9\|16\|4`<br>`Divadip\|AA\|10\|16\|4`<br>`Divadip\|DD\|11\|10\|4`<br>`] (delimiter is '\|');`<br>` `<br>`FirstSortedValue:`<br>`LOAD  Customer,FirstSortedValue(Product, UnitSales) as MyProductWithSmallestOrderByCustomer Resident Temp Group By Customer;<br>` | ` Customer MyProductWithSmallestOrderByCustomer  `<br>`Astrida CC`<br>`Betacab AA`<br>`Canutility AA`<br>`Divadip DD`<br><br>이 함수는 UnitSales를 가장 작은 값부터 큰 값까지 순서대로 정렬하여, 가장 작은 UnitSales 값(최소 주문)을 가진 Customer 값을 찾습니다.<br><br><br>CC가 고객 Astrida의 최소 주문(UnitSales 값=2)에 해당하기 때문입니다. AA는 고객 Betacab의 최소 주문(4)에 해당하고, AA는 고객 Canutility의 최소 주문(8)에 해당하고, DD는 고객 Divadip.의 최소 주문(10)에 해당합니다. |
| 이전 예에서처럼 Temp 테이블이 로드된 것으로 가정합니다.<br><br>`LOAD  Customer,FirstSortedValue(Product, -UnitSales) as MyProductWithLargestOrderByCustomer Resident Temp Group By Customer;` | ` Customer MyProductWithLargestOrderByCustomer  `<br>`Astrida AA`<br>`Betacab DD`<br>`Canutility CC`<br>`Divadip -`<br><br>빼기 기호가 sort\_weight 인수 앞에 오므로 이 함수는 가장 큰 값부터 정렬합니다.<br><br><br>AA는 고객 Astrida의 최대 주문(UnitSales 값: 18)에 해당하고, DD는 고객 Betacab의 최대 주문(12)에 해당하고, CC는 고객 Canutility의 최대 주문(13)에 해당하기 때문입니다. 고객 Divadip의 최대 주문(16)에 대해 동일한 값이 2개 있으므로 결과는 Null입니다. |
| 이전 예에서처럼 Temp 테이블이 로드된 것으로 가정합니다.<br><br>`LOAD  Customer,FirstSortedValue(distinct Product, -UnitSales) as MyProductWithSmallestOrderByCustomer Resident Temp Group By Customer;` | ` Customer MyProductWithLargestOrderByCustomer  `<br>`Astrida AA`<br>`Betacab DD`<br>`Canutility CC`<br>`Divadip AA`<br><br><br>distinct 한정자를 사용한 것을 빼면 이전 예와 동일합니다. 따라서 Divadip의 중복된 결과가 무시되고 Null 외의 값이 반환됩니다. |