용도
always_join: [
view_name,
view_name,
...
]
}
계층 구조
always_join |
기본값
없음결제 가능
쉼표로 구분된 뷰 이름 목록이 포함된 대괄호특수 규칙
always_join 에서 사용하기 전에 explore 에 뷰를 조인해야 합니다.
|
정의
always_join
는 사용자가 결합된 뷰에서 필드를 선택하지 않았더라도 Looker에서 생성하는 SQL에 하나 이상의 조인을 강제로 포함합니다. [view_name_a, view_name_b, etc]
와 같이 쉼표로 구분된 목록을 사용하여 여러 조인이 필요할 수 있습니다.
Looker는 쿼리에 사용할 SQL을 생성할 때 가장 깔끔한 SQL을 생성하려고 시도하며, 사용자가 선택하는 필드에 필요한 조인만 사용합니다. always_join
를 사용하면 강제로 조인이 발생하게 할 수 있습니다.
always_join
는 type
매개변수를 사용하여 조인을 실행하고 LEFT JOIN
가 아닌 경우 유용할 수 있습니다. 이러한 상황에서는 조인을 통해 반환되는 행을 올바르게 제한할 수 있습니다.
Examples
사용자가 member
에서 필드를 선택하지 않더라도 member
가 항상 event
에 조인되는지 확인합니다. 이렇게 하면 결과가 회원 생성 이벤트만 보도록 제한됩니다.
explore: event {
always_join: [member]
join: member {
sql_on: ${event.member_id} = ${member.id} ;;
type: inner
}
}
사용자가 두 뷰 중 하나에서 필드를 선택하지 않더라도 member
및 payment
는 항상 event
에 조인되어야 합니다. 그러면 결과가 이미 회원이 지불한 회원 생성 이벤트만 보도록 제한됩니다.
explore: event {
always_join: [member, payment]
join: member {
sql_on: ${event.member_id} = ${member.id} ;;
type: inner
}
join: payment {
sql_on: ${member.payment_id} = ${payment.id} ;;
type: inner
}
}
일반 과제
보기를 탐색에 조인해야 always_join
에서 참조할 수 있습니다.
always_join
에 뷰를 배치하려면 뷰가 always_join
가 사용되는 탐색에 조인되어 있는지 확인합니다. 예를 들어 다음과 같이 작동하지 않습니다.
explore: event {
always_join: [member]
}
여기서 member
뷰는 event
에 조인되지 않았으므로 always_join
에서 사용할 수 없습니다.
알아두어야 할 사항
가능하다면 조인에 비즈니스 로직을 적용하지 마세요.
참여에 대한 표준 Looker 접근 방식은 가능한 경우 LEFT JOIN
를 사용하는 것입니다. 위의 예에서는 조인 자체 내에 비즈니스 로직을 적용할 수 있도록 LEFT JOIN
를 사용하지 않습니다. 예시 중 하나에서 회원과 연결된 이벤트만 포함하는 탐색을 만들었습니다.
explore: event {
always_join: [member]
join: member {
sql_on: ${event.member_id} = ${member.id} ;;
type: inner
}
}
Looker에서 이 작업을 실행하는 가장 좋은 방법은 LEFT JOIN
를 사용하여 이벤트 데이터와 멤버 데이터를 함께 가져오는 것입니다.
explore: event {
join: member {
sql_on: ${event.member_id} = ${member.id} ;;
}
}
'예' 또는 '아니요'로 설정할 수 있는 측정기준을 만들어 구성원 이벤트만 볼 수 있습니다.
dimension: is_member_event {
type: yesno
sql: ${member.id} IS NOT NULL ;;
}
이 방법을 통해 사용자는 유연하게 모든 이벤트를 보거나 회원 이벤트만 볼 수 있습니다. 사용자가 조인을 통해 멤버 이벤트만 보도록 강제하지 않았습니다.