Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Funções para gerar números aleatórios

Todas as funções nesta seção aceitam zero ou um argumento. O único uso do argumento (se fornecido) é evitar a eliminação de subexpressões comuns, para que duas execuções diferentes da mesma função aleatória em uma mesma linha retornem valores aleatórios diferentes.

Conteúdo relacionado

fuzzBits

Introduzido na versão: v20.5.0

Inverte os bits da string de entrada s, com probabilidade p para cada bit.

Sintaxe

fuzzBits(s, p)

Argumentos

  • sString ou FixedString em que será aplicado o fuzzing de bits String ou FixedString
  • p — Probabilidade de inverter cada bit, como um número entre 0.0 e 1.0 Float*

Valor retornado

Retorna uma string com fuzzing do mesmo tipo que s. String ou FixedString

Exemplos

Exemplo de uso

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

rand

Introduzido em: v1.1.0

Retorna um número UInt32 aleatório com distribuição uniforme.

Usa um gerador pseudoaleatório não criptográfico com um estado inicial obtido do sistema, o que significa que, embora pareça aleatório, não é realmente aleatório e pode ser previsível se o estado inicial for conhecido. Em cenários em que a aleatoriedade real é crucial, considere usar métodos alternativos, como chamadas em nível de sistema ou a integração com bibliotecas externas.

Sintaxe

rand([x])

Aliases: rand32

Argumentos

Valor retornado

Retorna um número aleatório do tipo UInt32. UInt32

Exemplos

Exemplo de uso

SELECT rand();
1569354847

rand64

Introduzido em: v1.1.0

Retorna um número UInt64 aleatório com distribuição uniforme.

Usa um gerador pseudoaleatório não criptográfico com estado inicial obtido do sistema, o que significa que, embora pareça aleatório, não é realmente aleatório e pode ser previsível se o estado inicial for conhecido. Em cenários nos quais a aleatoriedade real é crucial, considere usar métodos alternativos, como chamadas em nível de sistema ou integração com bibliotecas externas.

Sintaxe

rand64([x])

Argumentos

Valor retornado

Retorna um número aleatório UInt64 com distribuição uniforme. UInt64

Exemplos

Exemplo de uso

SELECT rand64();
15030268859237645412

randBernoulli

Introduzido em: v22.10.0

Retorna um número Float64 aleatório extraído de uma distribuição de Bernoulli.

Sintaxe

randBernoulli(probability[, x])

Argumentos

  • probability — A probabilidade de sucesso, representada por um valor entre 0 e 1. Float64
  • x — Opcional e ignorado. A única finalidade desse argumento é evitar a eliminação de subexpressões comuns quando a mesma chamada de função é usada várias vezes em uma consulta. Any

Valor retornado

Retorna um número aleatório do tipo Float64 extraído da distribuição de Bernoulli especificada. UInt64

Exemplos

Exemplo de uso

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

randBinomial

Introduzido em: v22.10.0

Retorna um número Float64 aleatório extraído de uma distribuição binomial.

Sintaxe

randBinomial(experiments, probability[, x])

Argumentos

  • experiments — O número de experimentos UInt64
  • probability — A probabilidade de sucesso em cada experimento, como um valor entre 0 e 1 Float64
  • x — Opcional e ignorado. A única finalidade do argumento é evitar a eliminação de subexpressões comuns quando a mesma chamada de função é usada várias vezes em uma consulta. Any

Valor retornado

Retorna um número aleatório Float64 extraído da distribuição binomial especificada. UInt64

Exemplos

Exemplo de uso

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

randCanonical

Introduzido em: v22.11.0

Retorna um número aleatório Float64 com distribuição uniforme entre 0 (inclusive) e 1 (exclusivo).

Sintaxe

randCanonical([x])

Argumentos

Valor retornado

Retorna um número aleatório do tipo Float64. Float64

Exemplos

Exemplo de uso

SELECT randCanonical();
0.345217890123456

randChiSquared

Introduzido em: v22.10.0

Retorna um número Float64 aleatório extraído de uma distribuição qui-quadrado.

Sintaxe

randChiSquared(degree_of_freedom[, x])

Argumentos

  • degree_of_freedom — Graus de liberdade. Float64
  • x — Opcional e ignorado. Esse argumento tem como único propósito evitar a eliminação de subexpressões comuns quando a mesma chamada de função é usada várias vezes em uma consulta. Any

Valor retornado

Retorna um número aleatório do tipo Float64 extraído da distribuição qui-quadrado especificada. Float64

Exemplos

Exemplo de uso

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

randConstant

Introduzido em: v1.1.0

Gera um único valor aleatório que permanece constante em todas as linhas durante a execução da consulta atual.

Esta função:

  • Retorna o mesmo valor aleatório para cada linha em uma única consulta
  • Produz valores diferentes em execuções distintas da consulta

Ela é útil para aplicar sementes aleatórias ou identificadores consistentes a todas as linhas de um conjunto de dados

Sintaxe

randConstant([x])

Argumentos

Valor retornado

Retorna uma coluna do tipo UInt32 contendo o mesmo valor aleatório em cada linha. UInt32

Exemplos

Uso básico

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

Uso com parâmetro

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

randExponential

Introduzido em: v22.10.0

Retorna um número Float64 aleatório extraído de uma distribuição exponencial.

Sintaxe

randExponential(lambda[, x])

Argumentos

  • lambda — Parâmetro de taxa, ou valor lambda, da distribuição Float64
  • x — Opcional e ignorado. O argumento tem como único propósito evitar a eliminação de subexpressões comuns quando a mesma chamada de função é usada várias vezes em uma consulta. Any

Valor retornado

Retorna um número aleatório do tipo Float64 extraído da distribuição exponencial especificada. Float64

Exemplos

Exemplo de uso

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

randFisherF

Introduzido em: v22.10.0

Retorna um número Float64 aleatório extraído de uma distribuição F.

Sintaxe

randFisherF(d1, d2[, x])

Argumentos

  • d1 — grau de liberdade d1 em X = (S1 / d1) / (S2 / d2). Float64
  • d2 — grau de liberdade d2 em X = (S1 / d1) / (S2 / d2). Float64
  • x — Opcional e ignorado. O único propósito do argumento é evitar a eliminação de subexpressões comuns quando a mesma chamada de função é usada várias vezes em uma consulta. Any

Valor retornado

Retorna um número aleatório do tipo Float64 extraído da distribuição F especificada Float64

Exemplos

Exemplo de uso

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

randLogNormal

Introduzido em: v22.10.0

Retorna um número Float64 aleatório extraído de uma distribuição log-normal.

Sintaxe

randLogNormal(mean, stddev[, x])

Argumentos

  • mean — A média da distribuição. Float64
  • stddev — O desvio padrão da distribuição. Float64
  • x — Opcional e ignorado. O único objetivo desse argumento é evitar a eliminação de subexpressões comuns quando a mesma chamada de função é usada várias vezes em uma consulta. Any

Valor retornado

Retorna um número aleatório Float64 gerado a partir da distribuição log-normal especificada. Float64

Exemplos

Exemplo de uso

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

randNegativeBinomial

Introduzido em: v22.10.0

Retorna um número Float64 aleatório extraído de uma distribuição binomial negativa.

Sintaxe

randNegativeBinomial(experiments, probability[, x])

Argumentos

  • experiments — O número de experimentos. UInt64
  • probabilityA probabilidade de falha em cada experimento, como um valor entre 0e1. [Float64`](/reference/data-types/float)
  • x — Opcional e ignorado. O único objetivo desse argumento é evitar a eliminação de subexpressões comuns quando a mesma chamada de função é usada várias vezes em uma consulta. Any

Valor retornado

Retorna um número Float64 aleatório gerado a partir da distribuição binomial negativa especificada UInt64

Exemplos

Exemplo de uso

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

randNormal

Introduzido em: v22.10.0

Retorna um número Float64 aleatório gerado a partir de uma distribuição normal.

Sintaxe

randNormal(mean, stddev[, x])

Argumentos

  • mean — O valor médio da distribuição Float64
  • stddev — O desvio padrão da distribuição Float64
  • x — Opcional e ignorado. A única finalidade desse argumento é evitar a eliminação de subexpressões comuns quando a mesma chamada de função é usada várias vezes em uma consulta. Any

Valor retornado

Retorna um número aleatório do tipo Float64 extraído da distribuição normal especificada. Float64

Exemplos

Exemplo de uso

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

randPoisson

Introduzido em: v22.10.0

Retorna um número Float64 aleatório extraído de uma distribuição de Poisson.

Sintaxe

randPoisson(n[, x])

Argumentos

  • n — O número médio de ocorrências. UInt64
  • x — Opcional e ignorado. O único objetivo desse argumento é evitar a eliminação de subexpressões comuns quando a mesma chamada de função é usada várias vezes em uma consulta. Any

Valor retornado

Retorna um número Float64 aleatório extraído da distribuição de Poisson especificada. UInt64

Exemplos

Exemplo de uso

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

randStudentT

Introduzido em: v22.10.0

Retorna um número Float64 aleatório extraído de uma distribuição t de Student.

Sintaxe

randStudentT(degree_of_freedom[, x])

Argumentos

  • degree_of_freedom — Graus de liberdade. Float64
  • x — Opcional e ignorado. O único objetivo desse argumento é evitar a eliminação de subexpressões comuns quando a mesma chamada de função é usada várias vezes em uma consulta. Any

Valor retornado

Retorna um número aleatório do tipo Float64 extraído da distribuição t de Student especificada. Float64

Exemplos

Exemplo de uso

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

randUniform

Introduzido em: v22.10.0

Retorna um número Float64 aleatório gerado com distribuição uniforme no intervalo [\min, \max].

Sintaxe

randUniform(min, max[, x])

Argumentos

  • min — Limite esquerdo do intervalo (inclusive). Float64
  • max — Limite direito do intervalo (inclusive). Float64
  • x — Opcional e ignorado. O único propósito desse argumento é evitar a eliminação de subexpressões comuns quando a mesma chamada de função é usada várias vezes em uma consulta. Any

Valor retornado

Retorna um número aleatório gerado com distribuição uniforme no intervalo formado por min e max. Float64

Exemplos

Exemplo de uso

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

randomFixedString

Introduzido em: v20.5.0

Gera uma string aleatória de tamanho fixo com a quantidade especificada de caracteres. Os caracteres retornados não são necessariamente caracteres ASCII, ou seja, podem não ser imprimíveis.

Sintaxe

randomFixedString(length)

Argumentos

  • length — Comprimento da string em bytes. UInt*

Valor retornado

Retorna uma string preenchida com bytes aleatórios. FixedString

Exemplos

Exemplo de uso

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

randomPrintableASCII

Introduzido em: v20.1.0

Gera uma string ASCII aleatória com a quantidade especificada de caracteres.

Se você passar length < 0, o comportamento da função será indefinido.

Sintaxe

randomPrintableASCII(length[, x])

Argumentos

  • length — Tamanho da string em bytes. (U)Int*
  • x — Opcional e ignorado. A única finalidade desse argumento é evitar a eliminação de subexpressões comuns quando a mesma chamada de função é usada várias vezes em uma consulta. Any

Valor retornado

Retorna uma string com uma sequência aleatória de caracteres ASCII imprimíveis. String

Exemplos

Exemplo de uso

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

Introduzido em: v20.5.0

Gera uma string aleatória com a quantidade especificada de caracteres. Os caracteres retornados não são necessariamente caracteres ASCII, ou seja, podem não ser imprimíveis.

Sintaxe

randomString(length[, x])

Argumentos

  • length — Tamanho da string em bytes. (U)Int*
  • x — Opcional e ignorado. O único propósito desse argumento é evitar a eliminação de subexpressões comuns quando a mesma chamada de função é usada várias vezes em uma consulta. Any

Valor retornado

Retorna uma string composta por bytes aleatórios. String

Exemplos

Exemplo de uso

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

randomStringUTF8

Introduzido na versão: v20.5.0

Gera uma string UTF-8 aleatória com o número especificado de pontos de código. Nenhum ponto de código de planos não atribuídos (planos de 4 a 13) é retornado. Ainda é possível que o cliente que interage com o servidor ClickHouse não consiga exibir corretamente a string UTF-8 gerada.

Sintaxe

randomStringUTF8(length)

Argumentos

  • length — Comprimento da string em pontos de código. (U)Int*

Valor retornado

Retorna uma string preenchida com pontos de código UTF-8 aleatórios. String

Exemplos

Exemplo de uso

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