Kategorien:

Datengenerierungsfunktionen

UNIFORM

Generiert eine gleichmäßig verteilte, pseudozufällige Zahl im Bereich [min, max] (einschließlich).

Syntax

UNIFORM( <min> , <max> , <gen> )
Copy

Argumente

min

Eine Konstante, die den Mindestwert (einschließlich) der generierten Zahl angibt.

max

Eine Konstante, die den Höchstwert (einschließlich) der generierten Zahl angibt.

gen

Ein Ausdruck, der als Rohdatenquelle für gleichmäßige Zufallszahlen dient, typischerweise die Funktion RANDOM. Weitere Informationen dazu finden Sie unter „Datengenerierungsfunktionen“ unter Nutzungshinweise.

Rückgabewerte

Wenn mindestens einer der beiden Werte min oder max eine Gleitkommazahl ist, gibt UNIFORM eine Gleitkommazahl zurück. Wenn sowohl min als auch max Ganzzahlen (Integer) sind, gibt UNIFORM eine Ganzzahl zurück.

Nutzungshinweise

Diese Funktion ist mit der Funktion RANDOM verwandt, unterscheidet sich jedoch von dieser. Beide Funktionen generieren gleichmäßige Verteilungen, aber es gibt Unterschiede in den Wertebereichen der zurückgegebenen Werte.

  • RANDOM generiert pseudozufällige 64-Bit-Ganzzahlen. Sie akzeptiert einen optionalen Startwert, der die Wiederholung von Sequenzen ermöglicht.

  • UNIFORM generiert zufällige Ganzzahl- oder Gleitkommazahlen im angegebenen Bereich.

Beispiele

SELECT uniform(1, 10, random()) FROM table(generator(rowCount => 5));

--------------------------+
 uniform(1, 10, random()) |
--------------------------+
 6                        |
 4                        |
 7                        |
 9                        |
 4                        |
--------------------------+
Copy
SELECT uniform(0::float, 1::float, random()) FROM table(generator(rowCount => 5));

---------------------------------------+
 uniform(0::float, 1::float, random()) |
---------------------------------------+
 0.2895427479                          |
 0.7178660941                          |
 0.6925603163                          |
 0.05914526824                         |
 0.8243151404                          |
---------------------------------------+
Copy
SELECT uniform(1, 10, 1234) FROM table(generator(rowCount => 5));

----------------------+
 uniform(1, 10, 1234) |
----------------------+
 7                    |
 7                    |
 7                    |
 7                    |
 7                    |
----------------------+
Copy