sql >> Databasteknik >  >> RDS >> PostgreSQL

Generera ett slumpmässigt tal i intervallet 1 - 10

Om du med siffror mellan 1 och 10 menar en float som är>=1 och <10, så är det enkelt:

select random() * 9 + 1

Detta kan enkelt testas med:

# 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)

Om du vill ha heltal, det vill säga>=1 och <10, så är det enkelt:

select trunc(random() * 9 + 1)

Och återigen, enkelt test:

# 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)


  1. LOWER() – Konvertera till gemener i PostgreSQL

  2. Hur PERIOD_DIFF() fungerar i MariaDB

  3. Hur gör jag topp 1 i Oracle?

  4. Döda en postgresql-session/anslutning