Fonction de redshift any_value

Fonction de redshift any_value
Décalage vers le rouge DE N'IMPORTE QUELLE VALEUR est une fonction qui renvoie toute valeur des valeurs d'expression d'entrée de manière non déterministe. Il prend plusieurs valeurs en entrée, sélectionne au hasard l'une de ces valeurs et les renvoie en réponse. Si vous transmettez des valeurs nulles à la fonction any_value, il renvoie une valeur nulle en réponse. Dans ce blog, nous discuterons de différents cas d'utilisation en utilisant la fonction any_value pour obtenir une sortie aléatoire des tables.

Syntaxe de toute fonction_value

Voici la syntaxe pour utiliser la fonction any_value dans Amazon Redshift:

Any_value ([distinct | tout] expression)

Voici la description des paramètres et des options transmises à la fonction REDSHIFT Any_value:

Distinct | TOUS

Lors de l'exécution de la fonction any_value, spécifiez soit distinct ou tout pour obtenir une sortie aléatoire des expressions d'entrée. Lorsque nous spécifions le DISTINCT mot-clé, la fonction any_value supprimera les valeurs en double de l'expression d'entrée, puis renvoie la valeur aléatoire de ces expressions uniques.

D'un autre côté, si le TOUS Le mot-clé est utilisé, la fonction any_value renverra l'expression aléatoire de toutes les expressions d'entrée.

Expression

C'est la colonne ou l'expression cible sur laquelle fonctionne la fonction any_value et obtient une valeur au hasard. Il peut contenir les données des types de données suivants:

  1. DOUBLE PRECISION
  2. RÉEL
  3. Chronomètre
  4. GÉOGRAPHIE
  5. DÉCIMAL
  6. Hllsketch
  7. GÉOMÉTRIE
  8. ENTIER
  9. Petit
  10. Horodatage
  11. Varchar
  12. Timestamptz
  13. Grand
  14. SUPER
  15. Vryte
  16. Booléen
  17. TEMPS
  18. CARBONISER
  19. DATE

Exemples de la fonction de n'importe qui

Cette section de l'article comprend différents exemples de la fonction REDSHIFT Any_value pour l'élaborer soigneusement.

Configuration de l'environnement

Avant d'aller de pair avec différents exemples, nous devons créer une table avec différentes colonnes. La requête suivante peut créer une table dans le cluster Redshift avec les attributs suivants:

  • nom d'utilisateur
  • employé_id
  • mot de passe
  • ville
  • date de naissance
Créer une table user_data (
Employee_ID INTEGER Primary Key,
Nom d'utilisateur Varchar (200),
Mot de passe Varchar (200),
City Varchar (200),
Date_of_birth Date
)

Maintenant, nous allons insérer quelques exemples de données dans le tableau User_Data du cluster Redshift. Utilisez la requête d'insertion pour ajouter les données en utilisant la requête suivante:

Insérer dans user_data (
employé_id,
nom d'utilisateur,
mot de passe,
ville,
date de naissance
) VALEURS (
1,
'utilisateur-1',
'pass-1',
'City-1',
'1997-02-27'
)

Exécutez cette requête plusieurs fois en modifiant les valeurs pour enregistrer les données de plusieurs utilisateurs. Maintenant, nous appliquerons la fonction any_value à ce tableau.

Après avoir inséré les données de plusieurs utilisateurs, utilisez la requête suivante pour répertorier toutes les données:

SELECT * FROM USER_DATA;

Appliquer n'importe quel_value sur le type de données entier

Dans cette section, nous appliquerons le type_value sur le type de données entier ou le employé_id colonne du données d'utilisateur Table que nous avons créé dans la section précédente.

À cette fin, la requête suivante peut être utilisée pour obtenir l'ID de l'employé de tout employé:

Sélectionnez any_value (employee_id) comme employee_id dans user_data;

La requête précédente sélectionnera toute valeur dans le employé_id colonne et reviendra comme sortie de cette requête. Le chiffre précédent a renvoyé l'employé_id de l'utilisateur aléatoire données d'utilisateur tableau.

Application de n'importe quel_value sur le type de données de chaîne

Tout comme nous avons appliqué la fonction any_value sur le type de données entier, il peut également être appliqué au type de données de chaîne. Lorsqu'il est appliqué au champ de type de données de chaîne, la fonction any_value sélectionne au hasard l'une des données et les renvoie en réponse.

Afin d'obtenir une valeur aléatoire de la nom d'utilisateur (String) Field, exécutez la requête suivante sur le cluster Redshift:

Sélectionnez any_value (nom d'utilisateur) comme nom d'utilisateur dans user_data;

Il renverra un aléatoire nom d'utilisateur Entrée de la données d'utilisateur tableau.

Appliquer n'importe quel_value sur le type de données de date

Nous pouvons également obtenir une valeur aléatoire du champ qui contient plusieurs entrées de type de données de date. Lorsque la fonction any_value est appliquée aux multiples valeurs du type de données de date, il sélectionne au hasard une entrée et le renvoie en réponse.

Pour obtenir un date de naissance d'un utilisateur aléatoire du données d'utilisateur Tableau, exécutez la requête suivante dans le cluster Redshift:

Sélectionnez any_value (date_of_birth) comme date_of_birth à user_data;

Cette requête obtiendra un aléatoire date de naissance du tableau et retournez-le en réponse.

Any_value Fonction en utilisant le groupe

Nous pouvons utiliser la fonction any_value pour simplifier et optimiser PAR GROUPE Déclaiments progresses. Un problème courant qui se produit avec de nombreuses requêtes est la conséquence de requêtes avec une clause de groupe par qui peut être constituée d'expressions utilisées dans la clause de groupe par ou une conséquence de la fonction agrégée.

Sélectionnez le client.ID, client.nom, somme (commandes.valeur)
Du client
Rejoignez les commandes sur le client.id = commandes.N ° de client
Groupe par client.ID, client.nom;

Dans l'attribut de requête précédente, le nom du client doit être dans le groupe par clause pour impliquer dans la conséquence. Ceci est indésirable et rend le calcul compliqué et lent.

Afin d'améliorer la requête et de le rendre plus rapide à exécuter, vous pouvez implémenter la requête précédente en utilisant la fonction any_value.

Sélectionnez le client.id, any_value (client.nom), somme (ordres.valeur)
Du client
Rejoignez les commandes sur le client.id = commandes.N ° de client
Groupe par client.identifiant;

Conclusion

Any_value est une fonction qui prend plusieurs valeurs en entrée et renvoie une valeur aléatoire de ces valeurs d'entrée. Il sélectionne la sortie dans les expressions d'entrée de manière non déterministe. Si l'expression d'entrée à la fonction any_value n'entraîne aucune ligne, la sortie de la fonction sera une valeur nul. Ce blog décrit les différents cas d'utilisation pour implémenter la fonction any_value pour obtenir la sortie aléatoire.