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
s—StringouFixedStringem que será aplicado o fuzzing de bitsStringouFixedStringp— Probabilidade de inverter cada bit, como um número entre0.0e1.0Float*
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
x— Opcional e ignorado. A única finalidade do argumento é impedir 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 UInt32. UInt32
Exemplos
Exemplo de uso
SELECT rand();1569354847rand64
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
x— Opcional e ignorado. O único propósito do argumento é impedir a eliminação de subexpressões comuns quando a mesma chamada da função é usada várias vezes em uma consulta.Any
Valor retornado
Retorna um número aleatório UInt64 com distribuição uniforme. UInt64
Exemplos
Exemplo de uso
SELECT rand64();15030268859237645412randBernoulli
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 entre0e1.Float64x— 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 experimentosUInt64probability— A probabilidade de sucesso em cada experimento, como um valor entre0e1Float64x— 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
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. Float64
Exemplos
Exemplo de uso
SELECT randCanonical();0.345217890123456randChiSquared
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.Float64x— 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
x— Opcional e ignorado. O único objetivo 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 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çãoFloat64x— 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 emX = (S1 / d1) / (S2 / d2).Float64d2— grau de liberdade d2 emX = (S1 / d1) / (S2 / d2).Float64x— 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.Float64stddev— O desvio padrão da distribuição.Float64x— 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.UInt64probability—A probabilidade de falha em cada experimento, como um valor entre0e1. [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çãoFloat64stddev— O desvio padrão da distribuiçãoFloat64x— 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.UInt64x— 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.Float64x— 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).Float64max— Limite direito do intervalo (inclusive).Float64x— 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)─┐
│ 𲉗𩍄ԍ╃𑄅 │
└──────────────────────┘