Tôi có một bảng có bản ghi cho mỗi mã zip ở Hoa Kỳ. Với mục đích hiển thị trên bản đồ, tôi cần chọn X bản ghi ngẫu nhiên cho mỗi tiểu bang. Tôi sẽ đi đâu để tới đó?Máy chủ SQL - kéo X bản ghi ngẫu nhiên trên mỗi tiểu bang
10
A
Trả lời
12
Sử dụng:
WITH sample AS (
SELECT t.*,
ROW_NUMBER() OVER (PARTITION BY t.state
ORDER BY NEWID()) AS rank
FROM ZIPCODES t)
SELECT s.*
FROM sample s
WHERE s.rank <= 5
0
SELECT * FROM ZipCodes ORDER BY NEWID()
+1
Yeah, tôi biết về newid. Câu hỏi của tôi là làm thế nào để kéo các bản ghi ngẫu nhiên cho mỗi tiểu bang. – Chris
Điều này hoạt động khá tốt. Câu hỏi tiếp theo - nếu một số cơ hội tôi được yêu cầu chuyển cổng này sang MySQL - có cách nào tương thích hơn để tạo truy vấn không? – Chris
@Chris: Không phải là - MySQL không có hỗ trợ chức năng phân tích/xếp hạng. –