2010-10-22 9 views

risposta

12

Usa:

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

Funziona abbastanza bene. Domanda successiva - se per caso sono obbligato a portarlo su MySQL - esiste un modo più generale di creare la query? – Chris

+0

@Chris: non così com'è - MySQL non ha supporto per funzioni di analisi/classifica. –

0
SELECT * FROM ZipCodes ORDER BY NEWID() 
+1

Sì, so di newid. La mia domanda era come estrarre record casuali per ogni stato. – Chris