2010-10-22 3 views

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

Đ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

+0

@Chris: Không phải là - MySQL không có hỗ trợ chức năng phân tích/xếp hạng. –

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