fields (조인)

이 페이지에서는 join의 일부인 fields 파라미터를 참조합니다.

fields은 Explore의 일부로도 사용할 수 있으며, 이에 대한 설명은 fields (Explore용) 매개변수 문서 페이지를 참고하세요.

fieldsset 매개변수 문서 페이지에 설명된 대로 집합의 일부로도 사용할 수 있습니다.

사용

explore: view_name_1 {
  join: view_name_2 {
    fields: [
      field-or-set-specification,
      field-or-set-specification,
      ...
    ]
  }
}
계층 구조
fields
기본값
조인된 뷰의 모든 필드

수락
쉼표로 구분된 필드 또는 집합 목록을 포함하는 대괄호

특별 규칙
  • 세트 이름은 항상 별표 (*)로 끝납니다.
  • 조인 수준에서는 필드와 세트를 포함만 할 수 있고 제외할 수는 없습니다. 하지만 다음과 같이 빈 목록과 함께 fields 매개변수를 사용하여 모든 필드를 제외할 수 있습니다. fields: []

정의

조인 수준의 fields를 사용하면 조인된 뷰에서 Explore로 가져올 필드를 지정할 수 있습니다. fields를 사용하지 않으면 Looker는 기본적으로 뷰의 모든 필드를 추가합니다.

[field_a, field_b]과 같은 필드 목록을 사용할 수 있습니다.

[set_a*]과 같이 필드 세트 (set 매개변수로 생성됨)를 참조할 수도 있습니다. 별표는 필드 이름 대신 집합 이름을 참조하고 있음을 Looker에 알려줍니다.

예시

customer 뷰의 name 필드만 order Explore에 추가합니다.

explore: order {
  join: customer {
    sql_on: ${order.customer_id} = ${customer.id} ;;
    fields: [name]
  }
}

customer 뷰에서 name, address, age 필드를 order Explore에 추가합니다.

explore: order {
  join: customer {
    sql_on: ${order.customer_id} = ${customer.id} ;;
    fields: [name, address, age]
  }
}

customer 뷰에서 order_fields라는 필드 세트를 order Explore에 추가합니다.

explore: order {
  join: customer {
    sql_on: ${order.customer_id} = ${customer.id} ;;
    fields: [order_fields* ]
  }
}

일반 과제

fields는 자체 join의 필드만 참조할 수 있습니다.

fields은 뷰를 참조하는 join의 하위 요소가 됩니다. fields에서 참조되는 측정기준 또는 측정값은 해당 보기의 일부여야 합니다. 예를 들어 다음과 같은 데이터가 있다고 가정해 보겠습니다.

explore: order {
  join: customer {
    sql_on: ${order.customer_id} = ${customer.id} ;;
    fields: [name]
  }
}

name이라는 측정기준 또는 측정값이 customer 보기에 있어야 제대로 작동합니다.

알아 두어야 할 사항

빈 목록과 함께 fields: []를 사용하여 모든 필드 제외

다음과 같이 조인에서 빈 목록과 함께 fields 매개변수를 사용하여 조인된 뷰에서 모든 필드를 제외할 수 있습니다.

explore: order {
  join: customer {
    fields: []
    sql_on: ${order.customer_id} = ${customer.id} ;;
  }
}

이 예에서는 customer 뷰의 필드가 order Explore에 표시되지 않습니다.

join 수준에서 필드를 삭제하는 유일한 방법은 fields: []를 사용하여 한 번에 모두 제외하는 것입니다. join 수준에서 모든 필드를 제외하도록 설정된 ALL_FIELDS*를 사용할 수 없습니다.

하지만 explore 수준에서는 이 페이지의 explore와 함께 fields를 사용하여 개별 항목을 제외할 수 있습니다 섹션에 설명된 대로 ALL_FIELDS*을 사용하여 개별 항목을 제외할 수 있습니다.

explore와 함께 fields를 사용하여 개별 항목을 제외할 수 있습니다.

fieldsjoin 매개변수 아래에 중첩된 경우 fields: []를 사용하여 모든 필드를 한 번에 제외하거나 특정 필드를 포함할 수 있습니다. 하지만 특정 필드를 한 번에 하나씩 제외할 수는 없습니다. 예를 들어 필드가 100개 있고 그중 하나만 제외하고 싶다면 원하는 필드 99개를 모두 나열해야 합니다.

하지만 ALL_FIELDS* 세트를 활용한 다음 필드를 제외하기 위해 explore 매개변수 아래에 fields를 중첩할 수 있습니다. 예를 들면 다음과 같습니다.

explore: order {
  fields: [
    ALL_FIELDS*,
    -customer.unwanted_field_a,
    -customer.unwanted_field_b
  ]
  join: customer {
    sql_on: ${order.customer_id} = ${customer.id} ;;
  }
}

view_name.field_name 구문을 사용하여 Explore 수준의 fields 파라미터에서 조인된 뷰 customer의 필드를 참조할 수 있습니다.

다양한 유형의 fields 매개변수가 서로 다른 시간에 적용됩니다.

이 페이지에서는 join 매개변수 아래에 중첩된 경우의 fields를 설명합니다. explore 아래에 중첩된 유사한 fields 매개변수도 있습니다. 두 속성을 동시에 사용하면 특정 순서로 적용되어 결과 동작에 영향을 미칩니다.

먼저 join 아래의 모든 fields 매개변수가 적용됩니다. 이렇게 하면 Explore에서 선택할 수 있는 필드 세트가 생성됩니다. 다음 예를 참조하세요.

explore: orders {
  join: users {
    fields: [name]
    sql_on: ${orders.user_id} = ${users.id} ;;
  }
}

이 경우 사용할 수 있는 필드는 orders의 모든 항목과 usersname입니다. ALL_FIELDS* 세트에 포함될 필드 그룹입니다 (개별 항목 제외 섹션 참고).

이제 explore 아래에 fields 매개변수를 추가하면 해당 집합 위에 제한이 추가됩니다. 다음과 같이 했다고 가정해 보겠습니다.

explore: orders {
  fields: [orders.price, users.address]
  join: users {
    fields: [name]
    sql_on: ${orders.user_id} = ${users.id} ;;
  }
}

이 경우 다음 단계를 수행하세요.

  • ordersprice는 생성한 ALL_FIELDS* 세트에 있으므로 예상대로 표시됩니다.
  • usersaddressusers이(가) 참여할 때 포함되지 않았으므로(name만 포함됨) 표시되지 않습니다.
  • usersname도 표시되지 않습니다. fields: [orders.price, users.address] 행의 탐색에 추가하지 않았기 때문입니다.