У меня есть таблица с записями для каждого почтового индекса в США. Для отображения на карте мне нужно выбрать X случайных записей для каждого состояния. Как мне это сделать?SQL Server - вытащить X случайных записей за состояние
10
A
ответ
12
Использование:
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
Да, я знаю о NEWID. Мой вопрос заключался в том, как вытащить случайные записи для каждого состояния. – Chris
Это работает очень хорошо. Следующий вопрос - если, по какой-то причине, мне необходимо передать это в MySQL - существует ли более общий способ формирования запроса? – Chris
@Chris: Не как-есть - MySQL не поддерживает аналитическую/ранжирующую функцию. –