이 페이지에서는 파생된 테이블의 일부인
sql
매개변수를 설명합니다.
sql
(필드용) 매개변수 문서 페이지에 설명된 대로sql
를 필드의 일부로 사용할 수도 있습니다.
용도
derived_table: {
sql:
SELECT *
FROM events
WHERE type NOT IN('test', 'staff') ;;
...
}
계층 구조
sql |
기본값
없음결제 가능
SQL 블록
|
정의
sql
를 사용하면 파생 테이블을 생성하는 데 사용할 SQL을 지정할 수 있습니다. SQL 쿼리가 원시 SQL로 작성되었고 Looker 필드를 참조하지 않는 한 sql
매개변수에 모든 법적 SQL 쿼리를 사용할 수 있습니다. 파생된 테이블에 대한 자세한 내용은 Looker의 파생 테이블 문서 페이지를 참조하세요.
일반 데이터베이스 테이블을 참조하는 것 외에 sql
에서 LookML 뷰 또는 파생 테이블을 참조할 수도 있습니다. 이렇게 하려면 다음을 사용합니다.
${view_or_derived_table_name.SQL_TABLE_NAME} AS view_or_derived_table_name
이 참조의 SQL_TABLE_NAME
는 리터럴 문자열이므로 아무것도 바꾸지 않아도 됩니다. 예를 들어 key_customer_order_facts
파생 테이블에서 key_customer
라는 파생 테이블을 참조하려면 다음과 같을 수 있습니다.
view: key_customer_order_facts {
derived_table: {
sql:
SELECT
customer_id,
COUNT( * ) AS lifetime_orders
FROM
order
INNER JOIN
${key_customer.SQL_TABLE_NAME} AS key_customer
ON
order.customer_id = key_customer.id
GROUP BY 1
;;
}
}
sql
를 사용한 유동 변수
sql
매개변수와 함께 유동 변수를 사용할 수도 있습니다. 유동 변수를 사용하면 필드의 값, 필드에 관한 데이터, 필드에 적용된 필터와 같은 데이터에 액세스할 수 있습니다.
date_start
및 date_end
Liquid 변수는 BigQuery와 같이 날짜별로 여러 테이블로 데이터를 파티션으로 나누는 데이터베이스 방언에 매우 유용합니다. 자세한 내용은 고객센터 도움말을 참고하세요.
특히 _in_query
, _is_selected
, _is_filtered
Liquid 변수는 파생 테이블에 몇 가지 흥미로운 기능을 추가할 수 있습니다. 쿼리에 필드 또는 필터가 포함되었는지 여부에 따라 true 또는 false를 반환합니다. 이러한 참/거짓 값을 올바르게 사용하기 위해서는 몇 가지 복잡한 문제를 고려해야 합니다. 자세한 내용은 유동 변수 페이지를 참고하세요.
예를 들어 이 파생된 테이블은 사용자가 선택한 필드를 기준으로 쿼리하는 데이터베이스 테이블을 변경합니다.
view: dynamic_order_counts {
derived_table: {
sql:
SELECT
period, number_of_orders
FROM
{% dynamic if dates.reporting_date._in_query %}
daily_orders
{% elsif dates.reporting_week._in_query %}
weekly_orders
{% dynamic else %}
monthly_orders
{% dynamic endif %}
GROUP BY 1
;;
}
}
Examples
customer_order_facts
파생 테이블을 만듭니다.
view: customer_order_facts {
derived_table: {
sql:
SELECT
customer_id,
COUNT( * ) AS lifetime_orders
FROM
order
GROUP BY 1
;;
}
}
고려사항
sql
에서 참조하는 테이블은 현재 연결에서 액세스할 수 있어야 합니다.
파생된 테이블이 포함된 views
는 모델에 의해 참조되는 explore
또는 join
매개변수에 의해 참조됩니다. 사용되는 데이터베이스 연결이 모델에 따라 결정됩니다 (connection
매개변수 문서 페이지 참고). 데이터베이스 연결 자체는 Looker의 관리 섹션에 정의됩니다. sql
매개변수에서 테이블을 참조하는 경우 연결된 연결 내에서 테이블에 액세스할 수 있어야 합니다.
Looker 필드 참조가 아닌 sql
와 함께 원시 SQL 사용
파생된 테이블 sql
매개변수에 작성하는 SQL은 데이터베이스의 기본 열과 테이블을 참조하는 원시 SQL이어야 합니다. Looker 필드 이름 또는 뷰 이름을 참조해서는 안 됩니다.
파생된 테이블에서 _filters['view_name.field_name']
를 사용하려면 sql_quote
가 필요합니다.
SQL 기반 파생 테이블을 정의할 때 값이 SQL에서 렌더링되고 필터가 문자열 값을 반환하는 _filters['view_name.field_name']
Liquid 변수를 사용하는 경우 출력에 작은따옴표를 추가해야 합니다. sql_quote
Liquid 필터를 포함하면 됩니다.
그러지 않으면 | sql_quote
와 함께 Liquid 변수를 추가하지 않으면 다음 LookML 경고가 표시됩니다.
Using "_filters[]" in Derived Table SQL without "sql_quote" is discouraged.
자세한 내용은 유동 변수 참조 문서 페이지를 참고하세요.