Ho una tabella con record per ogni codice postale negli Stati Uniti. Ai fini della visualizzazione su una mappa, devo selezionare X record casuali per stato. Come potrei fare questo?SQL Server - richiama X record casuali per stato
10
A
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
SELECT * FROM ZipCodes ORDER BY NEWID()
+1
Sì, so di newid. La mia domanda era come estrarre record casuali per ogni stato. – Chris
Funziona abbastanza bene. Domanda successiva - se per caso sono obbligato a portarlo su MySQL - esiste un modo più generale di creare la query? – Chris
@Chris: non così com'è - MySQL non ha supporto per funzioni di analisi/classifica. –