Categorias:

Funções de métricas de dados

AVG (função de métricas de dados do sistema)

Retorna o valor médio da coluna especificada em uma tabela.

A função de métrica de dados do sistema AVG é otimizada para calcular o valor médio de uma única coluna e oferece maior desempenho quando comparada à chamada da função AVG.

Sintaxe

SNOWFLAKE.CORE.AVG(<query>)
Copy

Argumentos

query

Especifica uma consulta SQL em uma tabela ou exibição.

Tipos de dados permitidos

A coluna referenciada em query deve ter um dos seguintes tipos de dados:

  • FLOAT

  • NUMBER

Retornos

A função retorna um valor NUMBER.

Requisitos de controle de acesso

Para usar uma DMF de sistema, escolha uma das seguintes abordagens de controle de acesso:

  • Conceda a função de banco de dados DATA_METRIC_USER à função do proprietário da tabela, que é a função com o privilégio OWNERSHIP na tabela. Esta função de banco de dados tem o privilégio USAGE sobre o esquema SNOWFLAKE.CORE e o privilégio USAGE em todas as DMFs do sistema no esquema SNOWFLAKE.CORE.

    Além disso, conceda os privilégios nesta tabela à função de proprietário da tabela:

    Privilégio

    Objeto

    Notas

    EXECUTE DATA METRIC FUNCTION

    Conta

    Este privilégio permite que você controle quais funções têm acesso aos recursos de computação sem servidor para chamar a DMF do sistema.

    USAGE

    Banco de dados, esquema

    Esses objetos são o banco de dados e o esquema com a tabela referenciada em query.

  • Conceda os privilégios na tabela acima à função de proprietário da tabela. Além disso, conceda os seguintes privilégios à função de proprietário da tabela:

  • Use a função ACCOUNTADMIN.

Para instruções sobre como criar uma função personalizada com um conjunto específico de privilégios, consulte Criação de funções personalizadas.

Para informações gerais sobre concessões de funções e privilégios para executar ações de SQL em objetos protegíveis, consulte Visão geral do controle de acesso.

Exemplo

Meça o valor médio da coluna salary em uma tabela:

SELECT SNOWFLAKE.CORE.AVG(
  SELECT
    salary
  FROM hr.tables.empl_info
);
Copy
+------------------------------------------------------------+
| SNOWFLAKE.CORE.AVG(SELECT salary FROM hr.tables.empl_info) |
+------------------------------------------------------------+
| 137000                                                     |
+------------------------------------------------------------+