Ich entdeckte gerade, dass die RAND() - Funktion, während undokumentiert, in BigQuery funktioniert. Ich konnte eine (scheinbar) Stichprobe von 10 Wörtern aus dem Shakespeare-Datensatz zu erzeugen, mit:Random Sampling in Google BigQuery
SELECT word FROM
(SELECT rand() as random,word FROM [publicdata:samples.shakespeare] ORDER BY random)
LIMIT 10
Meine Frage ist: Gibt es irgendwelche Nachteile mit diesem Ansatz anstelle des HASH() -Methode definiert in der " Erweiterte Beispiele "Abschnitt des Referenzhandbuchs? https://developers.google.com/bigquery/query-reference
Hallo Felipe! Kannst du erklären, was du mit 'WHERE RAND() <10/164656 'machst? Vielen Dank! – Rohit
RAND() gibt mir eine Zufallszahl zwischen 0 und 1. Also, wenn ich nach einer Reihe von Zufallszahlen frage, nur etwa ein Zehntel von ihnen wird weniger als 0,1, nur etwa ein Hundertstel von ihnen wird weniger als 0,01 und bald. Shakespeare-Tisch hat 164656 Reihen. Wenn ich nur ungefähr eine zufällige Reihe haben möchte, gebe ich jeder Reihe eine zufällige Zahl und wähle die mit ihr <1/164656 aus. Es ist nicht garantiert, dass es einen geben wird - aber trotzdem. 10? 10 * 1/164656 = 10/164656. Versuch es :). –
@FelipeHoffa Ich versuche, Ihre Methode zu implementieren, aber ich bekomme sehr unterschiedliche Ergebnisse. Ich habe eine Tabelle von ungefähr 6 Milliarden Reihen und nachdem ich die Probenahme unter Verwendung z.B. 'rand() <0.004', das Verhältnis der Stichprobengröße zur Gesamtzahl der Zeilen ergibt sich als '0.0002'. Mit anderen Worten, meine Probe ist etwa 20 mal kleiner als erwartet. Haben Sie eine Erklärung für dieses Verhalten? – Kris