J'ai une table avec des enregistrements pour chaque code postal aux États-Unis. Pour l'affichage sur une carte, j'ai besoin de sélectionner X enregistrements aléatoires par état. Comment ferais-je cela?SQL Server - tirer X enregistrements aléatoires par état
10
A
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
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
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
@Chris: Non tel quel - MySQL n'a pas de support de fonction analytique/de classement. –