Skip to main content

Referenciando modelos e perguntas salvas

Referenciando modelos e perguntas salvas

Com bancos de dados SQL, podemos usar um modelo ou uma pergunta existente como base para uma nova consulta, ou como uma expressão de tabela comum CTE.

Por exemplo, digamos que temos muitos dados distribuídos em várias tabelas, mas as pessoas têm mais interesse em um subconjunto desses dados. Podemos realizar uma consulta complexa uma vez para retornar esses resultados, e salvar essa pergunta como um modelo, que as pessoas podem referenciar em suas consultas assim como fariam com qualquer outra tabela.

Pesquise modelos e perguntas conforme você digita

Primeiro, crie e salve uma pergunta ou modelo que retorne o conjunto de resultados que você deseja disponibilizar para as pessoas consultarem.

Para referenciar essa pergunta ou modelo em uma consulta SQL, use a busca do tipo autocomplete em uma variável prefixada com #.

Digite {{#seu termo de busca}} e o Analytics exibirá uma lista de modelos e perguntas relevantes para seu termo de busca.

Dropdown de busca rápida para referenciar perguntas e modelos em consultas SQL

Você também pode encontrar o ID da pergunta ou modelo navegando no Analytics até o modelo ou pergunta que deseja referenciar na sua consulta. O ID está na URL na barra de endereço do seu navegador. O ID será o número após /model/ ou /question/. Por exemplo, para https://analytics.example.com/model/12345-exemplo-nome, o ID do modelo seria 12345.

Somente o # e o ID são necessários. O Analytics exibe apenas o nome do modelo ou da pergunta para tornar a consulta mais legível.

Modelo, tabela ou pergunta salva como expressão de tabela comum (CTE)

A mesma sintaxe pode ser usada em Expressões de Tabela Comum (CTEs) (com bancos de dados SQL que suportam CTEs):


WITH gizmo_orders AS {{#5-gizmo-orders-in-2019}}
SELECT count(*)
FROM gizmo_orders

Quando essa consulta for executada, a tag {{#5-gizmo-orders-in-2019}} será substituída pela consulta SQL da pergunta referenciada, envolvida entre parênteses. Então, ela ficará assim internamente:


WITH
  gizmo_orders AS (
    SELECT
      *
    FROM
      orders AS o
      INNER JOIN products AS p ON o.product_id = p.id
    WHERE
      p.category = 'Gizmo'
      AND o.created_at BETWEEN '2019-01-01' AND '2019-12-31'
  )
SELECT
  count(*)
FROM
  gizmo_orders

Limitações e considerações

  • Você só pode referenciar um modelo ou pergunta salva em uma consulta ao trabalhar com um banco de dados SQL como PostgreSQL, MySQL, Snowflake ou SQL Server.
  • O modelo ou pergunta salva que você selecionar deve ser baseado no mesmo banco de dados que o atualmente selecionado no editor de consultas nativo.
  • Você não pode se referir a variáveis em subconsultas. Você tem acesso apenas aos resultados do modelo ou pergunta salva, não à consulta do modelo ou pergunta. Por exemplo, se você tiver uma pergunta salva que usa um filtro de campo, não poderá referenciar essa variável. Se precisar alterar como a pergunta salva filtrou os resultados, será necessário atualizar (ou duplicar) essa pergunta e aplicar o filtro.

Leitura adicional


Leia a documentação para outras versões do Analytics.