Tôi vừa phát hiện ra rằng hàm RAND(), trong khi không có giấy tờ, hoạt động trong BigQuery. Tôi đã có thể tạo ra một (dường như) mẫu ngẫu nhiên gồm 10 từ từ dataset Shakespeare sử dụng:Lấy mẫu ngẫu nhiên trong Google BigQuery
SELECT word FROM
(SELECT rand() as random,word FROM [publicdata:samples.shakespeare] ORDER BY random)
LIMIT 10
Câu hỏi của tôi là: Có bất kỳ bất lợi cho việc sử dụng phương pháp này thay cho HASH() phương pháp được định nghĩa trong " Ví dụ nâng cao "phần của hướng dẫn tham khảo? https://developers.google.com/bigquery/query-reference
Hi Felipe! Bạn có thể giải thích những gì bạn đang làm với 'WHERE RAND() <10/164656'? Cảm ơn! – Rohit
RAND() cho tôi một số ngẫu nhiên từ 0 đến 1. Vì vậy, nếu tôi yêu cầu một tập hợp các số ngẫu nhiên, chỉ khoảng một phần mười số đó sẽ nhỏ hơn 0,1, chỉ khoảng một phần trăm trong số đó sẽ nhỏ hơn 0,01 và Sớm. Bảng Shakespeare có 164656 hàng. Nếu tôi chỉ muốn có khoảng 1 hàng ngẫu nhiên, tôi sẽ cho mỗi hàng một số ngẫu nhiên, và chọn một số với nó <1/164656. Nó không đảm bảo rằng sẽ có một - nhưng vẫn còn. 10? 10 * 1/164656 = 10/164656. Hãy thử nó :). –
@ FelipeHoffa Tôi đang cố gắng triển khai phương pháp của bạn, nhưng tôi nhận được kết quả cực kỳ khác biệt. Tôi có một bảng khoảng 6 tỷ hàng và sau khi tôi lấy mẫu bằng cách sử dụng ví dụ: 'rand() <0,004', tỷ lệ cỡ mẫu trên tổng số hàng xuất hiện dưới dạng' 0.0002'. Nói cách khác, mẫu của tôi nhỏ hơn khoảng 20 lần so với dự kiến. Bạn có lời giải thích cho hành vi này không? – Kris