Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Fonctions de génération de nombres aléatoires

Toutes les fonctions de cette section n’acceptent aucun argument ou un seul. Le seul usage de l’argument (s’il est fourni) est d’empêcher l’élimination des sous-expressions communes, afin que deux exécutions distinctes d’une même fonction aléatoire au sein d’une ligne renvoient des valeurs aléatoires différentes.

Contenu associé

fuzzBits

Introduite dans : v20.5.0

Inverse les bits de la chaîne d’entrée s, avec une probabilité p pour chaque bit.

Syntaxe

fuzzBits(s, p)

Arguments

  • sString ou FixedString sur laquelle effectuer un fuzzing de bits String ou FixedString
  • p — Probabilité d’inverser chaque bit, sous la forme d’un nombre compris entre 0.0 et 1.0 Float*

Valeur renvoyée

Renvoie une chaîne fuzzée du même type que s. String ou FixedString

Exemples

Exemple d’utilisation

SELECT fuzzBits(materialize('abacaba'), 0.1)
FROM numbers(3)
┌─fuzzBits(materialize('abacaba'), 0.1)─┐
│ abaaaja                               │
│ a*cjab+                               │
│ aeca2A                                │
└───────────────────────────────────────┘

rand

Introduit dans : v1.1.0

Renvoie un nombre UInt32 aléatoire suivant une distribution uniforme.

Cette fonction utilise un générateur pseudo-aléatoire non cryptographique avec un état initial obtenu à partir du système, ce qui signifie que, bien qu'il paraisse aléatoire, il ne l'est pas réellement et peut être prévisible si l'état initial est connu. Dans les cas où une véritable source d'aléa est indispensable, envisagez d'utiliser d'autres méthodes, comme des appels système ou l'intégration de bibliothèques externes.

Syntaxe

rand([x])

Alias : rand32

Arguments

Valeur renvoyée

Renvoie un nombre aléatoire de type UInt32. UInt32

Exemples

Exemple d'utilisation

SELECT rand();
1569354847

rand64

Introduit dans : v1.1.0

Renvoie un nombre UInt64 aléatoire suivant une distribution uniforme.

Utilise un générateur pseudo-aléatoire non cryptographique avec un état initial obtenu à partir du système, ce qui signifie que, même s'il semble aléatoire, il ne l'est pas réellement et peut être prévisible si l'état initial est connu. Lorsque le caractère véritablement aléatoire est crucial, envisagez d'utiliser d'autres méthodes, comme des appels système ou l'intégration de bibliothèques externes.

Syntaxe

rand64([x])

Arguments

Valeur renvoyée

Renvoie un nombre UInt64 aléatoire suivant une distribution uniforme. UInt64

Exemples

Exemple d’utilisation

SELECT rand64();
15030268859237645412

randBernoulli

Introduit dans : v22.10.0

Renvoie un nombre aléatoire de type Float64 issu d’une loi de Bernoulli.

Syntaxe

randBernoulli(probability[, x])

Arguments

  • probability — La probabilité de succès, sous la forme d'une valeur comprise entre 0 et 1. Float64
  • x — Facultatif et ignoré. Le seul objectif de cet argument est d'empêcher l'élimination des sous-expressions communes lorsque le même appel de fonction est utilisé plusieurs fois dans une requête. Any

Valeur renvoyée

Renvoie une valeur Float64 aléatoire générée selon la loi de Bernoulli spécifiée. UInt64

Exemples

Exemple d'utilisation

SELECT randBernoulli(.75) FROM numbers(5)
┌─randBernoulli(0.75)─┐
│                   1 │
│                   1 │
│                   0 │
│                   1 │
│                   1 │
└─────────────────────┘

randBinomial

Apparu dans : v22.10.0

Renvoie un nombre aléatoire de type Float64 tiré d'une loi binomiale.

Syntaxe

randBinomial(experiments, probability[, x])

Arguments

  • experiments — Le nombre d’épreuves UInt64
  • probability — La probabilité de succès de chaque épreuve, sous la forme d’une valeur comprise entre 0 et 1 Float64
  • x — Facultatif et ignoré. Le seul but de cet argument est d’empêcher l’élimination des sous-expressions communes lorsque le même appel de fonction est utilisé plusieurs fois dans une requête. Any

Valeur renvoyée

Renvoie un nombre aléatoire de type Float64 issu de la loi binomiale spécifiée. UInt64

Exemples

Exemple d’utilisation

SELECT randBinomial(100, .75) FROM numbers(5)
┌─randBinomial(100, 0.75)─┐
│                      74 │
│                      78 │
│                      76 │
│                      77 │
│                      80 │
└─────────────────────────┘

randCanonical

Introduit dans : v22.11.0

Renvoie un nombre Float64 aléatoire suivant une distribution uniforme entre 0 (inclus) et 1 (exclus).

Syntaxe

randCanonical([x])

Arguments

Valeur renvoyée

Renvoie un nombre aléatoire de type Float64. Float64

Exemples

Exemple d’utilisation

SELECT randCanonical();
0.345217890123456

randChiSquared

Introduit dans : v22.10.0

Renvoie un nombre Float64 aléatoire tiré d’une loi du chi carré.

Syntaxe

randChiSquared(degree_of_freedom[, x])

Arguments

  • degree_of_freedom — Degrés de liberté. Float64
  • x — Facultatif et ignoré. Le seul but de cet argument est d’empêcher l’élimination des sous-expressions communes lorsque le même appel de fonction est utilisé plusieurs fois dans une requête. Any

Valeur renvoyée

Renvoie un nombre aléatoire Float64 tiré de la distribution du chi carré spécifiée. Float64

Exemples

Exemple d’utilisation

SELECT randChiSquared(10) FROM numbers(5)
┌─randChiSquared(10)─┐
│ 10.015463656521543 │
│  9.621799919882768 │
│   2.71785015634699 │
│ 11.128188665931908 │
│  4.902063104425469 │
└────────────────────┘

randConstant

Introduit dans : v1.1.0

Génère une valeur aléatoire unique qui reste constante pour toutes les lignes lors de l’exécution de la requête en cours.

Cette fonction :

  • Renvoie la même valeur aléatoire pour chaque ligne au sein d’une même requête
  • Produit des valeurs différentes d’une exécution à l’autre

Elle est utile pour utiliser les mêmes seeds ou identifiants aléatoires sur toutes les lignes d’un jeu de données

Syntaxe

randConstant([x])

Arguments

Valeur renvoyée

Renvoie une colonne de type UInt32 contenant la même valeur aléatoire sur chaque ligne. UInt32

Exemples

Utilisation de base

SELECT randConstant() AS random_value;
| random_value |
|--------------|
| 1234567890   |

Utilisation avec un paramètre

SELECT randConstant(10) AS random_value;
| random_value |
|--------------|
| 9876543210   |

randExponential

Introduit dans : v22.10.0

Renvoie un nombre Float64 aléatoire issu d’une loi exponentielle.

Syntaxe

randExponential(lambda[, x])

Arguments

  • lambda — Paramètre de taux, ou valeur lambda, de la distribution Float64
  • x — Facultatif et ignoré. Le seul but de l’argument est d’empêcher l’élimination des sous-expressions communes lorsque le même appel de fonction est utilisé plusieurs fois dans une requête. Any

Valeur renvoyée

Renvoie un nombre aléatoire de type Float64 issu de la distribution exponentielle spécifiée. Float64

Exemples

Exemple d’utilisation

SELECT randExponential(1/10) FROM numbers(5)
┌─randExponential(divide(1, 10))─┐
│              44.71628934340778 │
│              4.211013337903262 │
│             10.809402553207766 │
│              15.63959406553284 │
│             1.8148392319860158 │
└────────────────────────────────┘

randFisherF

Introduit dans : v22.10.0

Renvoie un nombre Float64 aléatoire tiré d’une loi F.

Syntaxe

randFisherF(d1, d2[, x])

Arguments

  • d1 — le degré de liberté d1 dans X = (S1 / d1) / (S2 / d2). Float64
  • d2 — le degré de liberté d2 dans X = (S1 / d1) / (S2 / d2). Float64
  • x — Facultatif et ignoré. Le seul but de cet argument est d'empêcher l'élimination des sous-expressions communes si le même appel de fonction est utilisé plusieurs fois dans une requête. Any

Valeur renvoyée

Renvoie un nombre aléatoire de type Float64 tiré de la loi F spécifiée Float64

Exemples

Exemple d'utilisation

SELECT randFisherF(10, 3) FROM numbers(5)
┌─randFisherF(10, 20)─┐
│  0.7204609609506184 │
│  0.9926258472572916 │
│  1.4010752726735863 │
│ 0.34928401507025556 │
│  1.8216216009473598 │
└─────────────────────┘

randLogNormal

Introduit dans : v22.10.0

Renvoie un nombre Float64 aléatoire issu d'une loi log-normale.

Syntaxe

randLogNormal(mean, stddev[, x])

Arguments

  • mean — La valeur moyenne de la distribution. Float64
  • stddev — L’écart type de la distribution. Float64
  • x — Facultatif et ignoré. Le seul objectif de cet argument est d’empêcher l’élimination des sous-expressions communes lorsque le même appel de fonction est utilisé plusieurs fois dans une requête. Any

Valeur renvoyée

Renvoie un nombre aléatoire Float64 tiré de la distribution log-normale spécifiée. Float64

Exemples

Exemple d’utilisation

SELECT randLogNormal(100, 5) FROM numbers(5)
┌─randLogNormal(100, 5)─┐
│  1.295699673937363e48 │
│  9.719869109186684e39 │
│  6.110868203189557e42 │
│  9.912675872925529e39 │
│ 2.3564708490552458e42 │
└───────────────────────┘

randNegativeBinomial

Introduit dans : v22.10.0

Renvoie un nombre aléatoire de type Float64 tiré d’une loi binomiale négative.

Syntaxe

randNegativeBinomial(experiments, probability[, x])

Arguments

  • experiments — Le nombre d'expériences. UInt64
  • probabilityLa probabilité d'échec dans chaque expérience, sous forme d'une valeur comprise entre 0et1. [Float64`](/reference/data-types/float)
  • x — Facultatif et ignoré. Le seul but de cet argument est d'empêcher l'élimination des sous-expressions communes lorsque le même appel de fonction est utilisé plusieurs fois dans une requête. Any

Valeur renvoyée

Renvoie un nombre Float64 aléatoire issu de la distribution binomiale négative spécifiée UInt64

Exemples

Exemple d'utilisation

SELECT randNegativeBinomial(100, .75) FROM numbers(5)
┌─randNegativeBinomial(100, 0.75)─┐
│                              33 │
│                              32 │
│                              39 │
│                              40 │
│                              50 │
└─────────────────────────────────┘

randNormal

Introduit dans : v22.10.0

Renvoie un nombre Float64 aléatoire issu d'une loi normale.

Syntaxe

randNormal(mean, stddev[, x])

Arguments

  • mean — La moyenne de la distribution Float64
  • stddev — L’écart type de la distribution Float64
  • x — Facultatif et ignoré. Le seul but de cet argument est d’empêcher l’élimination des sous-expressions communes lorsque le même appel de fonction est utilisé plusieurs fois dans une requête. Any

Valeur renvoyée

Renvoie un nombre aléatoire de type Float64 issu de la distribution normale spécifiée. Float64

Exemples

Exemple d’utilisation

SELECT randNormal(10, 2) FROM numbers(5)
┌──randNormal(10, 2)─┐
│ 13.389228911709653 │
│  8.622949707401295 │
│ 10.801887062682981 │
│ 4.5220192605895315 │
│ 10.901239123982567 │
└────────────────────┘

randPoisson

Introduit dans : v22.10.0

Renvoie un nombre Float64 aléatoire tiré d’une distribution de Poisson.

Syntaxe

randPoisson(n[, x])

Arguments

Valeur renvoyée

Renvoie un nombre aléatoire de type Float64 issu de la loi de Poisson spécifiée. UInt64

Exemples

Exemple d'utilisation

SELECT randPoisson(10) FROM numbers(5)
┌─randPoisson(10)─┐
│               8 │
│               8 │
│               7 │
│              10 │
│               6 │
└─────────────────┘

randStudentT

Introduit dans : v22.10.0

Renvoie un nombre Float64 aléatoire issu d’une loi t de Student.

Syntaxe

randStudentT(degree_of_freedom[, x])

Arguments

  • degree_of_freedom — Degrés de liberté. Float64
  • x — Facultatif et ignoré. Le seul objectif de cet argument est d’empêcher l’élimination des sous-expressions communes si le même appel de fonction est utilisé plusieurs fois dans une requête. Any

Valeur renvoyée

Renvoie un nombre aléatoire de type Float64 tiré de la loi t de Student spécifiée. Float64

Exemples

Exemple d’utilisation

SELECT randStudentT(10) FROM numbers(5)
┌─────randStudentT(10)─┐
│   1.2217309938538725 │
│   1.7941971681200541 │
│ -0.28192176076784664 │
│   0.2508897721303792 │
│  -2.7858432909761186 │
└──────────────────────┘

randUniform

Introduit dans : v22.10.0

Renvoie un nombre Float64 aléatoire uniformément distribué sur l’intervalle [\min, \max].

Syntaxe

randUniform(min, max[, x])

Arguments

  • min — Borne gauche de l'intervalle (incluse). Float64
  • max — Borne droite de l'intervalle (incluse). Float64
  • x — Facultatif et ignoré. Le seul but de cet argument est d'empêcher l'élimination des sous-expressions communes lorsque le même appel de fonction est utilisé plusieurs fois dans une requête. Any

Valeur renvoyée

Renvoie un nombre aléatoire tiré uniformément dans l'intervalle formé par min et max. Float64

Exemples

Exemple d'utilisation

SELECT randUniform(5.5, 10) FROM numbers(5)
┌─randUniform(5.5, 10)─┐
│    8.094978491443102 │
│   7.3181248914450885 │
│    7.177741903868262 │
│    6.483347380953762 │
│    6.122286382885112 │
└──────────────────────┘

randomFixedString

Introduit dans : v20.5.0

Génère une chaîne aléatoire de longueur fixe contenant le nombre de caractères spécifié. Les caractères renvoyés ne sont pas nécessairement des caractères ASCII, c’est-à-dire qu’ils peuvent ne pas être imprimables.

Syntaxe

randomFixedString(length)

Arguments

  • length — Longueur de la chaîne en octets. UInt*

Valeur renvoyée

Une chaîne remplie d'octets aléatoires. FixedString

Exemples

Exemple d'utilisation

SELECT randomFixedString(13) AS rnd, toTypeName(rnd)
┌─rnd────────┬─toTypeName(randomFixedString(13))─┐
│ j▒h㋖HɨZ'▒ │ FixedString(13)                   │
└────────────┴───────────────────────────────────┘

randomPrintableASCII

Introduit dans : v20.1.0

Génère une chaîne ASCII aléatoire contenant le nombre de caractères spécifié.

Si vous passez length < 0, le comportement de la fonction est indéfini.

Syntaxe

randomPrintableASCII(length[, x])

Arguments

Valeur renvoyée

Renvoie une chaîne composée d'un ensemble aléatoire de caractères ASCII imprimables. String

Exemples

Exemple d'utilisation

SELECT number, randomPrintableASCII(30) AS str, length(str) FROM system.numbers LIMIT 3
┌─number─┬─str────────────────────────────┬─length(randomPrintableASCII(30))─┐
│      0 │ SuiCOSTvC0csfABSw=UcSzp2.`rv8x │                               30 │
│      1 │ 1Ag NlJ &RCN:*>HVPG;PE-nO"SUFD │                               30 │
│      2 │ /"+<"with:=LjJ Vm!c&hI*m#XTfzz │                               30 │
└────────┴────────────────────────────────┴──────────────────────────────────┘

randomString

Introduit dans : v20.5.0

Génère une chaîne aléatoire du nombre de caractères spécifié. Les caractères renvoyés ne sont pas nécessairement des caractères ASCII, c’est-à-dire qu’ils peuvent ne pas être affichables.

Syntaxe

randomString(length[, x])

Arguments

  • length — Longueur de la chaîne en octets. (U)Int*
  • x — Facultatif et ignoré. Cet argument a pour seule fonction d'empêcher l'élimination des sous-expressions communes lorsque le même appel de fonction est utilisé plusieurs fois dans une requête. Any

Valeur renvoyée

Renvoie une chaîne remplie d'octets aléatoires. String

Exemples

Exemple d'utilisation

SELECT randomString(5) AS str FROM numbers(2)
���
�v6B�

randomStringUTF8

Introduit dans : v20.5.0

Génère une chaîne UTF-8 aléatoire contenant le nombre de points de code spécifié. Aucun point de code issu de plans non attribués (plans 4 à 13) n'est renvoyé. Il est également possible que le client interagissant avec le serveur ClickHouse ne soit pas en mesure d'afficher correctement la chaîne UTF-8 générée.

Syntaxe

randomStringUTF8(length)

Arguments

  • length — Longueur de la chaîne en points de code. (U)Int*

Valeur renvoyée

Renvoie une chaîne composée de points de code UTF-8 aléatoires. String

Exemples

Exemple d'utilisation

SELECT randomStringUTF8(13)
┌─randomStringUTF8(13)─┐
│ 󶡕𲉗𩍄ԍ╃𑄅󦨁󷌁󬾣𹼫󤓆󺜘󩶧         │
└──────────────────────┘
Navigation