Puisque mon approche pour une requête de test sur laquelle j'ai travaillé en cette question n'a pas fonctionné, j'essaie autre chose maintenant. Y a-t-il un moyen de dire à pg's random()
pour me donner uniquement les nombres entre 1 et 10 ?
Réponses
Trop de publicités?Si par "nombres entre 1 et 10", vous entendez tout nombre flottant >= 1 et < 10, alors c'est facile :
select random() * 9 + 1
Ceci peut être facilement testé avec :
# select min(i), max(i) from (
select random() * 9 + 1 as i from generate_series(1,1000000)
) q;
min | max
-----------------+------------------
1.0000083274208 | 9.99999571684748
(1 row)
Si vous voulez des entiers qui sont >= 1 et < 10, c'est simple :
select trunc(random() * 9 + 1)
Et encore une fois, un test simple :
# select min(i), max(i) from (
select trunc(random() * 9 + 1) as i from generate_series(1,1000000)
) q;
min | max
-----+-----
1 | 9
(1 row)
hythlodayr
Points
2015
user2786206
Points
1