사용
view: view_name {
dimension: field_name {
case: {
when: {
sql: SQL condition ;;
label: "value"
}
# Possibly more when statements
else: "value"
}
alpha_sort: yes
}
}
|
계층 구조
case |
가능한 필드 유형
측정기준
수락
SQL 조건과 문자열
특별 규칙
값을 알파벳순으로 정렬하려면 alpha_sort 매개변수를 사용하세요.
|
정의
case를 사용하면 케이스 로직으로 결과를 버킷팅할 수 있습니다. 원시 SQL CASE 문을 대신 작성할 수 있지만 case을 사용하면 Looker UI에서 사용자를 위한 드롭다운 메뉴가 생성됩니다. SQL CASE 문으로는 이러한 메뉴를 만들 수 없습니다.
case의 일반적인 형식은 다음과 같습니다.
dimension: status {
case: {
when: {
sql: condition ;;
label: "Label of Condition"
}
# possibly more when statements
else: "Label If No Condition Met"
}
}
이러한 매개변수는 다음과 같이 작동합니다.
when- 라벨을 제공하려는 각 조건을 나타내기 위해 원하는 만큼when문을 사용할 수 있습니다.when문은 나열된 첫 번째 문부터 마지막 문까지 순서대로 평가되며, true로 평가되는 첫 번째when문이 연결된 라벨을 할당합니다.sql—sql매개변수는 true 또는 false로 평가되는 SQL 조건을 허용합니다.label- SQL 조건이 true인 경우 할당되는 라벨입니다. 할당된 라벨의 데이터 유형은string입니다.case문의 각label값은 고유해야 합니다. 여러 SQL 조건에 동일한label값을 사용하는 경우case문에 있는 마지막 SQL 조건에만label값이 할당됩니다. 이 페이지의 예를 참고하세요.else: 조건이 충족되지 않는 경우 사용되는 라벨입니다.
alpha_sort로 라벨의 정렬 순서 선택
일반적으로 case 값은 작성한 순서대로 표시됩니다. 알파벳순으로 정렬하려면 다음과 같이 alpha_sort: yes을 사용하면 됩니다.
dimension: status {
alpha_sort: yes
case: { ... }
}
예시
여러 사람이 읽을 수 있는 라벨을 다양한 상태 번호에 할당합니다.
dimension: status {
case: {
when: {
sql: ${TABLE}.status = 0 ;;
label: "pending"
}
when: {
sql: ${TABLE}.status = 1 ;;
label: "complete"
}
when: {
sql: ${TABLE}.status = 2 ;;
label: "returned"
}
else: "unknown"
}
}
동일한 조건이 반복되고 다른 라벨로 평가되는 경우 LookML은 true로 평가되는 첫 번째 조건을 사용합니다. 다음 예시에서는 pending 조건이 먼저 평가되므로 ${TABLE}.status = 0가 returned가 아닌 pending로 평가됩니다.
dimension: status {
case: {
when: {
sql: ${TABLE}.status = 0 ;;
label: "pending"
}
when: {
sql: ${TABLE}.status = 1 ;;
label: "complete"
}
when: {
sql: ${TABLE}.status = 0 ;;
label: "returned"
}
else: "unknown"
}
}
여러 조건이 동일한 라벨로 평가되면 LookML은 첫 번째 조건만 사용합니다. 다음 예에서 Looker는 ${TABLE}.status = 2 대신 ${TABLE}.status = 0를 사용하여 pending로 평가되는 SQL CASE 문을 생성합니다. ${TABLE}.status = 2인 경우 CASE 문은 unknown로 평가됩니다.
view: orders
dimension: status {
case: {
when: {
sql: ${TABLE}.status = 0 ;;
label: "pending"
}
when: {
sql: ${TABLE}.status = 1 ;;
label: "complete"
}
when: {
sql: ${TABLE}.status = 2 ;;
label: "pending"
}
else: "unknown"
}
}
알아 두어야 할 사항
측정기준에 다른 필드를 참조하는 case 매개변수가 포함된 경우 해당 추가 필드가 측정기준이 사용되는 쿼리의 기본 SQL에 추가될 수 있습니다. 참조된 필드가 쿼리의 시각화에 없으며 시각화가 열이 수동으로 재정렬된 표 차트인 경우 다운로드된 일부 형식의 열 순서가 영향을 받을 수 있습니다.