Catégories :

Fonctions de métrique des données

AVG (fonction de métrique des données système)

Renvoie la valeur moyenne pour la colonne spécifiée d’une table.

La fonction de métrique des données système AVG est optimisée pour calculer la valeur moyenne d’une seule colonne et offre de meilleures performances par rapport à l’appel de la fonction AVG.

Syntaxe

SNOWFLAKE.CORE.AVG(<query>)
Copy

Arguments

query

Spécifie une requête SQL sur une table ou une vue.

Types de données autorisés

La colonne référencée dans la query doit être l’un des types de données suivants :

  • FLOAT

  • NUMBER

Renvoie

La fonction renvoie une valeur NUMBER.

Exigences en matière de contrôle d’accès

Pour utiliser une DMF système, choisissez l’une des approches de contrôle d’accès suivantes :

  • Attribuez le rôle de base de données DATA_METRIC_USER au rôle de propriétaire de la table, qui est le rôle disposant du privilège OWNERSHIP sur la table. Ce rôle de base de données dispose du privilège USAGE sur le schéma SNOWFLAKE.CORE et du privilège USAGE sur toutes les DMFs systèmes dans le schéma SNOWFLAKE.CORE.

    En outre, accordez les privilèges de cette table au rôle de propriétaire de la table :

    Privilège

    Objet

    Remarques

    EXECUTE DATA METRIC FUNCTION

    Compte

    Ce privilège vous permet de contrôler les rôles qui ont accès aux ressources de calcul sans serveur pour appeler la DMF système.

    USAGE

    Base de données, schéma

    Ces objets sont la base de données et le schéma qui contiennent la table à laquelle est fait référence dans query.

  • Accordez les privilèges de la table précédente au rôle de propriétaire de la table. De plus, accordez les privilèges suivants au propriétaire de la table :

  • Utilisez le rôle ACCOUNTADMIN.

Pour obtenir des instructions sur la création d’un rôle personnalisé avec un ensemble spécifique de privilèges, voir Création de rôles personnalisés.

Pour des informations générales sur les rôles et les privilèges accordés pour effectuer des actions SQL sur des objets sécurisables, voir Aperçu du contrôle d’accès.

Exemple

Mesurer la valeur moyenne de la colonne salary dans une table :

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