RAND |
Aléatoire |
|---|---|
| BigQuery | |
Syntaxe
| RAND() |
Description
Cette fonction permet d'effectuer la génération d'un nombre pseudo-aléatoire de type de données FLOAT64 dans l'intervalle de 0 inclusivement à 1 exclusivement.
Remarques
- Génération d'un nombre pseudo-aléatoire : La fonction RAND() retourne un nombre flottant pseudo-aléatoire compris dans l'intervalle [0, 1[, c'est-à-dire 0 inclus mais 1 exclus. Cette fonction est utile pour les tirages au sort, les simulations ou la sélection aléatoire de lignes.
- Type de retour en FLOAT64 : Le résultat est toujours de type FLOAT64. Cela permet d'obtenir une grande précision dans les valeurs générées, avec de nombreuses décimales, ce qui est important dans les algorithmes nécessitant une bonne répartition des probabilités.
- Sans paramètre, donc simple à utiliser : La syntaxe de RAND() est très simple, car elle ne prend aucun paramètre. Cela en fait une fonction rapide à intégrer dans des requêtes exploratoires ou des démonstrations aléatoires de résultats.
- Utile pour échantillonnage aléatoire : Une utilisation courante de RAND() consiste à l'intégrer dans une clause WHERE avec un seuil (exemple : WHERE RAND() < 0.1) afin de tirer un échantillon aléatoire de 10?% d'une table, ce qui est pratique pour tester sur des volumes réduits.
- Pas reproductible sans contrôle : Par défaut, RAND() ne génère pas de valeurs reproductibles. Si vous exécutez la même requête plusieurs fois, elle retournera des résultats différents à chaque exécution. Il n'y a pas de seed (graine) directement configurable dans cette fonction.
- Un comportement par ligne : Lorsqu'elle est utilisée dans une clause SELECT, RAND() produit une valeur différente pour chaque ligne du résultat. Elle ne génère pas un unique nombre pour l'ensemble de la requête, ce qui est important à prendre en compte pour les regroupements ou tris.
- Utilisation dans des tris aléatoires : On peut combiner RAND() avec une clause ORDER BY pour mélanger aléatoirement les lignes d'un résultat (par exemple, ORDER BY RAND()), ce qui est pratique pour faire des sélections aléatoires sans biais.
- Pas adaptée pour des usages cryptographiques : Comme RAND() utilise un générateur pseudo-aléatoire non sécurisé, elle ne doit pas être utilisée pour des opérations sensibles comme des tirages à enjeux, des mots de passe ou des fonctions de sécurité. Pour cela, des solutions spécialisées sont nécessaires.
Dernière mise à jour : Vendredi, le 8 novembre 2019