Erzeuge eine Zufallszahl einer nicht duplizierten Zufallszahl in [0, 1001] durch eine Schleife

8

Ich muss eine zufällige Anzahl von nicht duplizierten Zufallszahlen in plpgsql generieren. Die nicht duplizierte Nummer muss in den Bereich von [1,1001] fallen. Der Code generiert jedoch eine Nummer, die 1001 überschreitet.

%Vor%     
Kevin Q 29.11.2011, 12:21
quelle

2 Antworten

2

Wenn ich richtig verstehe

  • Sie benötigen eine Zufallszahl ( 1 bis 8 ) von Zufallszahlen.
  • Die Zufallszahlen umfassen 1 bis 1001 .
  • Die Zufallszahlen müssen eindeutig sein. Keiner darf mehr als einmal erscheinen.

%Vor%

Anruf:

%Vor%

Zahlen werden durch GROUP BY eindeutig gemacht. Ich erzeuge doppelt so viele Zahlen wie nötig, um genügend Zahlen zu liefern, falls Duplikate entfernt werden. Bei den gegebenen Dimensionen der Aufgabe (max. 8 von 1001 Zahlen) ist es astronomisch unwahrscheinlich, dass nicht genügend Zahlen übrig bleiben. Worst-Case-Szenario: Zuschauerzahlen werden zurückgegeben.

    
Erwin Brandstetter 30.11.2011, 03:44
quelle
1

Ich würde das Problem in PostgreSQL nicht so behandeln. Etwas in dieser Richtung scheint mehr Sinn zu ergeben.

%Vor%

Wählen Sie dann eine einzelne zufällige Ganzzahl zwischen 1 und 1000,

%Vor%

Um 100 zufällige Ganzzahlen zwischen 1 und 1000 auszuwählen,

%Vor%     
quelle