- Categorias:
SEMANTIC_VIEW¶
Especifica a exibição semântica para a consulta. Você especifica SEMANTIC_VIEW(…) em uma cláusula FROM em uma instrução SELECT.
- Consulte também:
Sintaxe¶
SEMANTIC_VIEW(
[<namespace>.]<semantic_view_name>
[ METRICS <metric> [ , ... ] ]
[ DIMENSIONS <dimension_expr> [ , ... ] ]
[ WHERE <predicate> ]
)
Parâmetros¶
[namespace.]semantic_view_name
Especifica o identificador da exibição semântica a ser consultada.
Se o identificador contiver espaços ou caracteres especiais, toda a cadeia de caracteres deverá ser delimitada por aspas duplas. Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.
Para obter mais informações, consulte Requisitos para identificadores.
METRICS metric [ , ... ]
Especifica as métricas que você deseja retornar nos resultados.
Nota
Você não pode especificar uma expressão que use uma métrica. Por exemplo, você não pode especificar
t1.metric_1 + 1
.Para os nomes das métricas:
Você pode qualificar o nome da métrica (por exemplo,
my_logical_table.my_metric
).O uso do nome não qualificado só funciona se não houver outros identificadores com o mesmo nome não qualificado na exibição semântica. Por exemplo, se uma métrica e uma dimensão usarem o mesmo nome não qualificado, você deverá qualificar o nome da métrica na consulta.
Para especificar todas as métricas, use um asterisco, qualificado pelo nome da tabela lógica (por exemplo,
my_logical_table.*
). Você não pode especificar um asterisco sem qualificá-lo com um nome de tabela.
Especifique as métricas na ordem em que elas devem aparecer nos resultados.
DIMENSIONS dimension_expr [ , ... ]
Especifica as dimensões que você deseja retornar nos resultados. Você também pode especificar expressões escalares que se referem a dimensões na exibição semântica.
Para os nomes das dimensões:
Você pode qualificar o nome da dimensão (por exemplo,
my_logical_table.my_dimension
). O uso do nome não qualificado só funciona se não houver outros identificadores com o mesmo nome não qualificado na exibição semântica. Por exemplo, se uma métrica e uma dimensão usarem o mesmo nome não qualificado, você deverá qualificar o nome da dimensão na consulta.Para especificar todas as dimensões, use um asterisco, qualificado pelo nome da tabela lógica (por exemplo,
my_logical_table.*
). Você não pode especificar um asterisco sem qualificá-lo com um nome de tabela.
Se você especificar uma expressão escalar, não poderá fazer referência a dimensões em outras exibições semânticas, fatos ou métricas nessa expressão.
Especifique as dimensões na ordem em que elas devem aparecer nos resultados.
WHERE predicate
Uma expressão booliana. A expressão pode incluir operadores lógicos, funções internas e funções definidas pelo usuário (UDFs).
Na condição, você só pode fazer referência a dimensões ou expressões que usam dimensões.
Essa condição de filtro é aplicada antes que as métricas sejam computadas.
Notas de uso¶
Na cláusula SEMANTIC_VIEWS, você deve especificar a cláusula METRICS, a cláusula DIMENSIONS ou ambas.
Você não pode omitir essas duas cláusulas de uma cláusula SEMANTIC_VIEWS.
Especifique as cláusulas METRICS e DIMENSIONS na ordem em que você deseja que elas apareçam nos resultados.
Se você quiser que as dimensões apareçam primeiro nos resultados, especifique DIMENSIONS antes de METRICS. Caso contrário, especifique primeiro METRICS.
Por exemplo, suponha que você especifique primeiro a cláusula METRICS:
SELECT * FROM SEMANTIC_VIEW( tpch_analysis METRICS customer.customer_order_count DIMENSIONS customer.customer_name ) ORDER BY customer_name LIMIT 5;
Na saída, a primeira coluna é a coluna de métrica (
customer_order_count
) e a segunda coluna é a coluna de dimensão (customer_name
):+----------------------+--------------------+ | CUSTOMER_ORDER_COUNT | CUSTOMER_NAME | |----------------------+--------------------| | 6 | Customer#000000001 | | 7 | Customer#000000002 | | 0 | Customer#000000003 | | 20 | Customer#000000004 | | 4 | Customer#000000005 | +----------------------+--------------------+
Se, em vez disso, você especificar primeiro a cláusula DIMENSIONS:
SELECT * FROM SEMANTIC_VIEW( tpch_analysis DIMENSIONS customer.customer_name METRICS customer.customer_order_count ) ORDER BY customer_name LIMIT 5;
Na saída, a primeira coluna é a coluna de dimensão (
customer_name
) e a segunda coluna é a coluna de métrica (customer_order_count
):+--------------------+----------------------+ | CUSTOMER_NAME | CUSTOMER_ORDER_COUNT | |--------------------+----------------------| | Customer#000000001 | 6 | | Customer#000000002 | 7 | | Customer#000000003 | 0 | | Customer#000000004 | 20 | | Customer#000000005 | 4 | +--------------------+----------------------+
Você pode usar a relação definida por uma cláusula SEMANTIC_VIEW em outras construções SQL, incluindo JOIN, PIVOT, UNPIVOT, GROUP BY e expressões de tabela comuns (CTEs).
Os cabeçalhos das colunas de saída usam os nomes não qualificados das métricas e dimensões.
Se você tiver várias métricas e dimensões com os mesmos nomes, use um alias de tabela para atribuir nomes diferentes aos cabeçalhos das colunas. Consulte Tratamento de nomes de colunas duplicados na saída.
Exemplos¶
Consulte Consultar uma exibição semântica.