# FirstSortedValue - 차트 함수

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

구문:

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

반환 데이터 유형: 이중

인수

| 인수 | 설명 |
| --- | --- |
| value | 출력 필드. 이 함수는 sort\_weight를 정렬한 결과에 해당하는 value 표현식의 값을 찾습니다. |
| sort\_weight | 입력 필드. 저장할 데이터가 포함된 표현식입니다. 해당하는 value 표현식 값을 결정할 sort\_weight의 첫 번째(가장 낮은) 값을 찾습니다. sort\_weight 앞에 빼기 기호가 있는 경우, 이 함수는 마지막(가장 높은) 정렬 값을 반환합니다. |
| rank | rank "n"을 1보다 큰 수로 지정하면 정렬된 n번째 값을 얻을 수 있습니다. |
| SetExpression | 기본적으로 집계 함수는 선택에 의해 정의된 사용 가능한 레코드의 집합을 집계합니다. 집합 분석 표현식으로 대체 레코드 집합을 정의할 수 있습니다. |
| DISTINCT | 함수 인수 앞에 DISTINCT라는 단어가 있을 경우 해당 함수 인수의 평가 결과로 생성된 중복이 무시됩니다. |
| TOTAL | TOTAL이 함수 인수 앞에 오는 경우, 현재 선택을 고려하되 현재 차원 값에 관련되지 않은 가능한 모든 값에 대한 계산이 실행됩니다. 즉, 차트 차원은 무시됩니다.<br><br>TOTAL [&lt;fld {.fld}&gt;](여기서 TOTAL 한정자 뒤에는 하나 이상의 필드 이름 목록이 차트 차원 변수의 하위 집합으로 옴)을 사용하여 가능한 전체 값의 하위 집합을 만듭니다.<br><br>[집계 범위 정의](https://help.qlik.com/ko-KR/sense/November2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

예: 차트 표현식

| 예 | 결과 |
| --- | --- |
| `FirstSortedValue (Product, UnitPrice)` | `UnitPrice`가 가장 낮은 `Product`를 반환합니다. |
| `FirstSortedValue (Product, UnitPrice, 2)` | `UnitPrice`가 두 번째로 낮은 `Product`를 반환합니다. |
| `FirstSortedValue (Customer, -UnitPrice, 2)` | `UnitPrice`가 두 번째로 높은 `Product`이 있는 `Customer`를 반환합니다. |
| `FirstSortedValue (Customer, -UnitPrice*UnitSales, 2)` | `UnitPrice`를 `UnitSales`로 곱한 판매 주문 값이 두 번째로 높은 `Customer`를 반환합니다. |

## 예 - FirstSortedValue 기본 사항

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/BasicAggregationFunctions/firstsortedvalue.htm)

#### 차트 표현식

개요

데이터 로드 편집기를 열고 새 섹션에 아래 로드 스크립트를 추가합니다.

로드 스크립트에는 다음이 포함됩니다.

* `Example`이라는 데이터 테이블에 로드되는 데이터 집합입니다.

* 데이터 테이블의 필드는 다음과 같습니다.

  * `Customer`

  * `Product`

  * `UnitSales`

  * `UnitPrice`

로드 스크립트

```
Example:
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 '|');
```

결과

데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 다음 필드를 측정값으로 추가합니다.

* `=FirstSortedValue (Product, UnitPrice)`: 단가가 가장 낮은 제품을 계산합니다.

* `=FirstSortedValue (Product, UnitPrice, 2)`: 두 번째로 낮은 단가의 제품을 계산합니다.

* `=FirstSortedValue (Customer, -UnitPrice, 2)`: 두 번째로 높은 단가를 가진 제품을 보유한 고객을 계산합니다.

* `=FirstSortedValue (Customer, UnitPrice, 3)`: 세 번째로 높은 단가를 가진 제품을 보유한 고객을 계산합니다.

* `=FirstSortedValue (Customer, -UnitPrice*UnitSales, 2)`: `UnitPrice`에 `UnitSales`을 곱한 판매 주문 값이 두 번째로 높은 고객을 계산합니다.

Results table

| FirstSortedValue (Product, UnitPrice) | FirstSortedValue (Product, UnitPrice, 2) | FirstSortedValue (Customer, -UnitPrice, 2) | FirstSortedValue (Customer, UnitPrice, 3) | FirstSortedValue (Customer, -UnitPrice\*UnitSales, 2) |
| --- | --- | --- | --- | --- |
| BB | BB | Betacab | - | Canutility |

첫 번째 열은 `UnitPrice`(`9`)가 가장 낮은 제품이므로 `BB` 값을 반환합니다.

두 번째 열은 `UnitPrice`(`10`)가 두 번째로 낮은 제품이므로 값 `BB`를 반환합니다.

세 번째 열은 `UnitPrice`(`20`)가 두 번째로 높은 `Product`가 있는 `Customer`인 `Betacab` 값을 반환합니다.

네 번째 열은 `UnitPrice`(`15`)가 동일한 순위(세 번째로 낮은 순위)인 `Customer`의 두 값(`Astrida` 및 `Canutility`)이 있으므로 `NULL`을 반환합니다.

다섯 번째 열은 `UnitPrice`에 `UnitSales`를 곱한 판매 주문 값(`120`)이 두 번째로 높은 `Customer`인 `Canutility`를 반환합니다.

## 예 - FirstSortedValue 시나리오

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/BasicAggregationFunctions/firstsortedvalue.htm)

#### 차트 표현식

개요

데이터 집합에는 해당 연도의 처음 3개월 동안의 판매 수치가 포함되어 있습니다. 지역 관리자는 향후 재고를 계획하기 위해 가장 많이 팔리는 제품과 가장 적게 팔리는 제품을 식별하려고 합니다.

데이터 로드 편집기를 열고 새 섹션에 아래 로드 스크립트를 추가합니다.

로드 스크립트에는 다음이 포함됩니다.

* `Example`이라는 데이터 테이블에 로드되는 데이터 집합입니다.

* 데이터 테이블의 필드는 다음과 같습니다.

  * `Date`

  * `SalesProduct`

  * `Category`

  * `Sales`

로드 스크립트

```
Example:
Load * inline [
Date,SalesProduct, Category, Sales
2024-01-01, Apple, Fruit, 100
2024-01-15, Banana, Fruit, 80
2024-01-30, Carrot, Vegetable, 50
2024-02-05, Apple, Fruit, 120
2024-02-20, Banana, Fruit, 90
2024-02-28, Carrot, Vegetable, 60
2024-03-10, Apple, Fruit, 110
2024-03-22, Banana, Fruit, 85
2024-03-31, Carrot, Vegetable, 55
];
```

결과

데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 이 필드를 차원으로 추가합니다.

* `Category`

다음 측정값을 만듭니다.

* `=FirstSortedValue(SalesProduct, -Sales)`: 각 범주에서 가장 많이 팔리는 제품을 계산합니다.

* `=FirstSortedValue(TOTAL SalesProduct, -Sales)`: 전체적으로 가장 많이 팔리는 제품을 계산합니다.

* `=FirstSortedValue(TOTAL SalesProduct, Sales)`: 전체에서 가장 적게 팔리는 제품을 계산합니다.

Results table

| Category | FirstSortedValue(SalesProduct, -Sales) | FirstSortedValue(TOTAL SalesProduct, -Sales) | FirstSortedValue(TOTAL SalesProduct, Sales) |
| --- | --- | --- | --- |
| Fruit | Apple | Apple | Carrot |
| Vegetable | Carrot | Apple | Carrot |

결과에 따르면 `Apple` 및 `Carrot`이 각각의 범주인 `Fruit` 및 `Vegetable`에서 가장 많이 팔리는 제품입니다. 그러나 모든 범주에 걸쳐 `Apple`가 가장 많이 팔린 제품이었고 `Carrot`이 가장 적게 팔린 제품이었습니다.

## 자세한 정보

* [집합 분석](https://help.qlik.com/ko-KR/sense/November2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-analysis-expressions.htm)
* [집계 범위 정의](https://help.qlik.com/ko-KR/sense/November2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm)