2010-10-22 8 views

Répondre

12

Utilisation:

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

Cela fonctionne plutôt bien. Question suivante - si par hasard je suis obligé de porter ceci à MySQL - y a-t-il une manière plus généralement compatible de former la requête? – Chris

+0

@Chris: Non tel quel - MySQL n'a pas de support de fonction analytique/de classement. –

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

Ouais, je sais à propos newid. Ma question était comment tirer des enregistrements aléatoires pour chaque état. – Chris

Questions connexes