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 | TOUSLors 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:
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:
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 (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)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)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.