Top
Top() 은 테이블의 열 세그먼트 내에 있는 첫 번째(맨 위) 행의 표현식을 평가합니다. 계산되는 행은 offset(있는 경우) 값에 따라 달라지며 기본적으로는 맨 위에 있는 행입니다. 테이블 이외의 차트인 경우 Top()은 해당 차트의 일반표 동등 부분에 있는 현재 열의 첫 번째 행을 평가합니다.
구문:
Top([TOTAL] expr [ , offset [,count ]])
반환 데이터 유형: dual
인수:
- expr: 측정할 데이터가 포함된 표현식 또는 필드입니다.
- offset: offsetn을 0보다 크게 지정하면 표현식의 평가가 현재 행보다 n 행 위로 이동됩니다. 오프셋을 0으로 지정하면 현재 행의 표현식이 평가됩니다. 오프셋을 음수로 지정하면 Above 함수가 상응하는 양수 오프셋이 있는 Below 함수와 동일하게 작동합니다.
- count: 세 번째 인수 count를 1보다 크게 지정하면 함수에서 count 값의 범위를 반환하며, 원래 셀에서 위쪽으로 계산하여 count 테이블 행 각각에 대해 하나의 값이 반환됩니다. 이러한 형식으로 이 함수를 특별 범위 함수의 인수로 활용할 수 있습니다. 범위 함수
- TOTAL: 테이블이 1차원이거나 TOTAL 한정자를 인수로 사용하는 경우 현재 열 세그먼트는 항상 전체 열과 동등합니다.
제한 사항:
-
이 차트 함수가 차트의 표현식에서 사용되는 경우 차트의 y 값에 대한 정렬 또는 테이블의 표현식 열에 의한 정렬은 허용되지 않습니다. 따라서 해당 정렬 옵션이 자동으로 비활성화됩니다. 시각화 또는 테이블에서 이 차트 함수를 사용하면 시각화의 정렬이 이 함수에 대해 정렬된 입력으로 되돌아갑니다.
-
재귀 호출은 NULL을 반환합니다.
예 및 결과:
예 1:
Customer | Sum(Sales) | Top(Sum(Sales)) | Sum(Sales) + Top(Sum(Sales)) | Top offset 3 |
---|---|---|---|---|
2566 | 587 | 3153 | 3249 | |
Astrida | 587 | 587 | 1174 | 1270 |
Betacab | 539 | 587 | 1126 | 1222 |
Canutility | 683 | 587 | 1270 | 1366 |
Divadip | 757 | 587 | 1344 | 1440 |
이 예에서 보여주는 테이블 차트 표시에서, 테이블은 차원 Customer와 측정값 Sum(Sales) 및 Top(Sum(Sales))로부터 생성됩니다.
Top(Sum(Sales)) 열은 모든 행에 대해 맨 위 행 Astrida의 값인 587을 반환합니다.
이 테이블은 더 복잡한 계수를 보여줍니다. 하나는 Sum(Sales)+Top(Sum(Sales))에서 생성된 것이며, 하나는 레이블이 Top offset 3이고 표현식 Sum(Sales)+Top(Sum(Sales), 3)에서 생성된 것으로 인수 offset이 3으로 설정되었습니다. 이는 현재 행의 Sum(Sales) 값을 맨 위 행에서 세 번째 행의 값에 추가하는 것이며, 현재 행에 Canutility의 값을 더하는 것과 같습니다.
예 2:
이 예에 나온 테이블 차트 표시에는 다음 차트에 더 많은 차원이 추가되었습니다. Month 및 Product. 2차원 이상의 차트인 경우 Above, Below, Top 및 Bottom 함수가 포함된 표현식의 결과는 QlikView에서 열 차원을 정렬한 순서에 따라 달라집니다. QlikView에서는 마지막으로 정렬된 차원에서 산출된 열 세그먼트를 기준으로 함수를 평가합니다. 열 정렬 순서는 정렬을 통해 제어되며 반드시 테이블에 표시되는 순서인 것은 아닙니다. (공간 절약을 위해 일부 행만 표시되어 있습니다.)
Customer | Product | Month | Sum(Sales) | First value |
---|---|---|---|---|
2566 | - | |||
Astrida | AA | Jan | 46 | 46 |
Astrida | AA | Feb | 60 | 46 |
Astrida | AA | Mar | 70 | 46 |
... | ... | ... | ... | ... |
Astrida | AA | Sep | 78 | 46 |
Astrida | AA | Oct | 12 | 46 |
Astrida | AA | Nov | 78 | 46 |
Astrida | AA | Dec | 22 | 46 |
Astrida | BB | Jan | 46 | 46 |
Customer | Product | Month | Sum(Sales) | First value |
---|---|---|---|---|
2566 | - | |||
Astrida | AA | Jan | 46 | 46 |
Astrida | BB | Jan | 46 | 46 |
Astrida | AA | Feb | 60 | 60 |
Astrida | BB | Feb | 60 | 60 |
Astrida | AA | Mar | 70 | 70 |
Astrida | BB | Mar | 70 | 70 |
Astrida | AA | Apr | 13 | 13 |
Astrida | BB | Apr | 13 | 13 |
자세한 내용은 Above 함수에서 예 2를 참조하십시오.
예 3:
Top 함수는 범위 함수에 대한 입력으로 사용할 수 있습니다. 예: RangeAvg (Top(Sum(Sales),1,3)).
Top() 함수에 대한 인수에서 offset이 1로 설정되고 count가 3으로 설정됩니다. 이 함수는 열 세그먼트에 있는 맨 아래 행 아래의 행에서 시작하는 세 행(offset=1이므로)과 그 아래의 두 행(행이 있는 곳)에 대한 표현식 Sum(Sales)의 결과를 찾습니다. 이 세 값은 제공된 숫자 범위에서 값의 평균을 구하는 RangeAvg() 함수에 대한 입력으로 사용됩니다.
차원으로 Customer가 포함된 테이블은 RangeAvg() 표현식에 대해 다음과 같은 결과를 제공합니다.
Customer | RangeAvg (Top(Sum(Sales),1,3)) |
---|---|
Astrida | 603 |
Betacab | 603 |
Canutility | 603 |
Divadip | 603 |
예에서 사용된 데이터:
Monthnames:
LOAD * INLINE [
Month, Monthnumber
Jan, 1
Feb, 2
Mar, 3
Apr, 4
May, 5
Jun, 6
Jul, 7
Aug, 8
Sep, 9
Oct, 10
Nov, 11
Dec, 12
];
Sales2013:
crosstable (Month, Sales) LOAD * inline [
Customer|Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec
Astrida|46|60|70|13|78|20|45|65|78|12|78|22
Betacab|65|56|22|79|12|56|45|24|32|78|55|15
Canutility|77|68|34|91|24|68|57|36|44|90|67|27
Divadip|57|36|44|90|67|27|57|68|47|90|80|94
] (delimiter is '|');
올바른 순서로 월을 정렬하려면 차트를 만들 때 해당 차트 속성의 Sort 탭으로 이동한 후 Sort by 아래에서 Expression 확인란을 선택합니다. 표현식 상자에 Monthnumber를 씁니다.