Schnell wollte fragen, dass der RAND() Operator die Werte in gleicher Anzahl verteilt? z.B. Wenn ich 100 Zeilen in einer Tabelle und eine Spalte mit dem Namen NumberOfItems habe und ich ihnen die Werte 1-10 zuweisen möchte, so dass sie gleichmäßig auf die 100 Datensätze aufgeteilt werden (10 Datensätze haben 1, 10 wird 2 .... ..)Wie funktioniert der rand() Operator?
die Aussage, die ich habe, ist:
select CAST(RAND(CHECKSUM(NEWID())) * 10 as INT)+1
Es gibt keinen Ersatz dafür, etwas auszuprobieren. Haben Sie versucht, eine ausreichend große Stichprobe zu erstellen und die Verteilung darin zu bewerten? Ich bemerke auch, dass die Barebones Dokumentation Seite auf 'rand()' erwähnt, dass es nur Pseudozufall ist, aber nicht die wahrscheinliche Form der Verteilung. Wie bereits erwähnt, geht man davon aus, dass man für einen Datensatz mit unendlicher Größe in hypothetischen, durchschnittlichen Termen spricht, anstatt zu erwarten, dass man eine gleichmäßige Verteilung über eine endliche Menge erhält. Das wäre nicht zufällig, oder? –
ohk das macht Sinn. Prost. Ich war mir nicht sicher, deshalb fragte ich. – Faiz
Ich bemerke auch, dass die offizielle Seite von barbones über 'rand()', obwohl sie keine spezifische Distribution erwähnt, vorsichtig ist zu erwähnen, dass diese Funktion nur pseudozufällig ist. –