Catégories :

Syntaxe de requête

SEMANTIC_VIEW

Spécifie la vue sémantique à interroger. Vous spécifiez SEMANTIC_VIEW(…) dans une FROM clause de l’instruction SELECT.

Voir aussi :

FROM, Interroger une vue sémantique

Syntaxe

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

Paramètres

[namespace.]semantic_view_name

Spécifie l’identificateur de la vue sémantique à interroger.

Si l’identificateur contient des espaces ou des caractères spéciaux, toute la chaîne doit être délimitée par des guillemets doubles. Les identificateurs entre guillemets doubles sont également sensibles à la casse.

Pour plus d’informations, voir Exigences relatives à l’identificateur.

METRICS metric [ , ... ]

Spécifie les métriques que vous souhaitez voir apparaître dans les résultats.

Note

Vous ne pouvez pas spécifier une expression qui utilise une métrique. Par exemple, vous ne pouvez pas spécifier t1.metric_1 + 1.

Pour les noms des métriques :

  • Vous pouvez qualifier le nom de la métrique (par exemple, my_logical_table.my_metric).

    L’utilisation du nom non qualifié ne fonctionne que s’il n’y a pas d’autres identificateurs portant le même nom non qualifié dans la vue sémantique. Par exemple, si une métrique et une dimension utilisent le même nom non qualifié, vous devez qualifier le nom de la métrique dans la requête.

  • Pour spécifier toutes les métriques, utilisez un astérisque, suivi du nom de la table logique (par exemple, my_logical_table.*). Vous ne pouvez pas spécifier un astérisque sans le faire précéder d’un nom de table.

Spécifiez les métriques dans l’ordre dans lequel elles doivent apparaître dans les résultats.

DIMENSIONS dimension_expr [ , ... ]

Spécifie les dimensions que vous souhaitez voir apparaître dans les résultats. Vous pouvez également spécifier des expressions scalaires qui font référence à des dimensions dans la vue sémantique.

Pour les noms des dimensions :

  • Vous pouvez qualifier le nom de la dimension (par exemple, my_logical_table.my_dimension). L’utilisation du nom non qualifié ne fonctionne que s’il n’y a pas d’autres identificateurs portant le même nom non qualifié dans la vue sémantique. Par exemple, si une métrique et une dimension utilisent le même nom non qualifié, vous devez qualifier le nom de la dimension dans la requête.

  • Pour spécifier toutes les dimensions, utilisez un astérisque, suivi du nom de la table logique (par exemple, my_logical_table.*). Vous ne pouvez pas spécifier un astérisque sans le faire précéder d’un nom de table.

Si vous spécifiez une expression scalaire, vous ne pouvez pas faire référence à des dimensions dans d’autres vues sémantiques, faits ou métriques dans cette expression.

Spécifiez les dimensions dans l’ordre dans lequel elles doivent apparaître dans les résultats.

WHERE predicate

Une expression booléenne. L’expression peut inclure des opérateurs logiques, des fonctions intégrées et des fonctions définies par l’utilisateur (UDFs).

Dans la condition, vous ne pouvez faire référence qu’à des dimensions ou à des expressions qui utilisent des dimensions.

Cette condition de filtre est appliquée avant le calcul des métriques.

Notes sur l’utilisation

  • Dans la clause SEMANTIC_VIEWS, vous devez spécifier la clause METRICS, la clause DIMENSIONS ou les deux.

    Vous ne pouvez pas omettre ces deux clauses dans une clause SEMANTIC_VIEWS.

  • Spécifiez les clauses METRICS et DIMENSIONS dans l’ordre dans lequel vous souhaitez qu’elles apparaissent dans les résultats.

    Si vous souhaitez que les dimensions apparaissent en premier dans les résultats, indiquez DIMENSIONS avant METRICS. Sinon, indiquez d’abord METRICS.

    Par exemple, supposons que vous indiquiez la clause METRICS en premier :

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

    Dans la sortie, la première colonne est celle de la métrique (customer_order_count) et la deuxième colonne est celle de la dimension (customer_name) :

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

    Inversement, si vous spécifiez d’abord la clause DIMENSIONS :

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

    Dans la sortie, la première colonne est celle de la dimension (customer_name) et la deuxième colonne est celle de la métrique (customer_order_count) :

    +--------------------+----------------------+
    | CUSTOMER_NAME      | CUSTOMER_ORDER_COUNT |
    |--------------------+----------------------|
    | Customer#000000001 |                    6 |
    | Customer#000000002 |                    7 |
    | Customer#000000003 |                    0 |
    | Customer#000000004 |                   20 |
    | Customer#000000005 |                    4 |
    +--------------------+----------------------+
    
  • Vous pouvez utiliser la relation définie par une clause SEMANTIC_VIEW dans d’autres constructions SQL, notamment JOIN, PIVOT, UNPIVOT, GROUP BY et les expressions de table communes (CTE).

  • Les en-têtes des colonnes de sortie utilisent les noms non qualifiés des métriques et des dimensions.

    Si plusieurs métriques et dimensions portent le même nom, utilisez un alias de table pour attribuer des noms différents aux en-têtes de colonne. Voir Gestion des noms de colonnes en double dans la sortie.

Exemples

Voir Interroger une vue sémantique.