カテゴリ:

クエリ構文

SEMANTIC_VIEW

クエリ する セマンティックビュー を指定します。 SELECT ステートメントの FROM 句で SEMANTIC_VIEW(...)を指定します。

こちらもご参照ください。

FROMセマンティックビューのクエリ

構文

SEMANTIC_VIEW(
  [<namespace>.]<semantic_view_name>
  [ METRICS <metric> [ , ... ] ]
  [ DIMENSIONS <dimension_expr>  [ , ... ] ]
  [ WHERE <predicate> ]
)
Copy

パラメーター

[namespace.]semantic_view_name

クエリするセマンティックビューの識別子を指定します。

識別子にスペースまたは特殊文字が含まれる場合は、文字列全体を二重引用符で囲む必要があります。二重引用符で囲まれた識別子も大文字と小文字が区別されます。

詳細については、 識別子の要件 をご参照ください。

METRICS metric [ , ... ]

結果で返したいメトリックを指定します。

注釈

メトリックを使用する式は指定できません。たとえば、 t1.metric_1 + 1 を指定することはできません。

メトリックの名前は:

  • メトリックの名前を修飾できます(たとえば、 my_logical_table.my_metric)。

    非修飾名を使用するのは、セマンティックビューに同じ非修飾名を持つ識別子が他にない場合のみです。例えば、メトリックとディメンジョンで同じ非修飾名を使用する場合は、クエリでメトリック名を修飾する必要があります。

  • すべてのメトリックを指定するには、論理テーブル名で修飾されたアスタリスクを使用します(たとえば、 my_logical_table.*)。テーブル名で修飾せずにアスタリスクを指定することはできません。

結果に表示される順序でメトリックを指定します。

DIMENSIONS dimension_expr [ , ... ]

結果で返したいディメンジョンを指定します。セマンティックビューのディメンジョンを参照するスカラー式も指定できます。

ディメンジョンの名前は:

  • ディメンジョンの名前を修飾できます(たとえば、 my_logical_table.my_dimension)。非修飾名を使用するのは、セマンティックビューに同じ非修飾名を持つ識別子が他にない場合のみです。例えば、メトリックとディメンジョンで同じ非修飾名を使用する場合は、クエリでディメンジョン名を修飾する必要があります。

  • すべてのディメンジョンを指定するには、論理テーブル名で修飾されたアスタリスクを使用します(たとえば、 my_logical_table.*)。テーブル名で修飾せずにアスタリスクを指定することはできません。

スカラー式を指定すると、その式で他のセマンティックビュー、ファクト、またはメトリックのディメンジョンを参照できません。

結果に表示される順序でディメンジョンを指定します。

WHERE predicate

ブール式。式には、 論理演算子組み込み関数ユーザー定義関数(UDFs) を含めることができます。

条件では、ディメンジョンまたはディメンジョンを使用する式のみを参照できます。

このフィルター条件は、メトリックが計算される前に適用されます。

使用上の注意

  • SEMANTIC_VIEWS 句では、 METRICS 句、 DIMENSIONS 句、またはその両方を指定する必要があります。

    SEMANTIC_VIEWS 句からこれらの句の両方を省略することはできません。

  • METRICS、 DIMENSIONS の句を、結果に表示させたい順番で指定します。

    寸法を結果の最初に表示させたい場合は、 METRICS の前に DIMENSIONS を指定します。そうでない場合は、まず METRICS を指定してください。

    例えば、 METRICS 句を最初に指定したとします:

    SELECT * FROM SEMANTIC_VIEW(
        tpch_analysis
        METRICS customer.customer_order_count
        DIMENSIONS customer.customer_name
      )
      ORDER BY customer_name
      LIMIT 5;
    
    Copy

    出力では、最初の列がメートル法の列(customer_order_count)で、2番目の列がディメンションの列(customer_name)です:

    +----------------------+--------------------+
    | CUSTOMER_ORDER_COUNT | CUSTOMER_NAME      |
    |----------------------+--------------------|
    |                    6 | Customer#000000001 |
    |                    7 | Customer#000000002 |
    |                    0 | Customer#000000003 |
    |                   20 | Customer#000000004 |
    |                    4 | Customer#000000005 |
    +----------------------+--------------------+
    

    代わりに DIMENSIONS 句を最初に指定します:

    SELECT * FROM SEMANTIC_VIEW(
        tpch_analysis
        DIMENSIONS customer.customer_name
        METRICS customer.customer_order_count
      )
      ORDER BY customer_name
      LIMIT 5;
    
    Copy

    出力では、最初の列がディメンションの列(customer_name)、2番目の列がメトリクスの列(customer_order_count)です:

    +--------------------+----------------------+
    | CUSTOMER_NAME      | CUSTOMER_ORDER_COUNT |
    |--------------------+----------------------|
    | Customer#000000001 |                    6 |
    | Customer#000000002 |                    7 |
    | Customer#000000003 |                    0 |
    | Customer#000000004 |                   20 |
    | Customer#000000005 |                    4 |
    +--------------------+----------------------+
    
  • JOIN, PIVOT, UNPIVOT, GROUP BY, 共通表式 (CTEs) などの他の SQL 構文で、 SEMANTIC_VIEW 句で定義された関係を使用することができます。

  • 出力列ヘッダーには、メトリクスとディメンションの修飾されていない名前が使用されます。

    同じ名前の複数のメトリクスやディメンションがある場合は、テーブル・エイリアスを使用して列ヘッダーに異なる名前を割り当てます。 出力中の重複列名の処理 をご参照ください。

セマンティックビューのクエリ をご参照ください。