2010-10-22 1 views

ответ

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

Это работает очень хорошо. Следующий вопрос - если, по какой-то причине, мне необходимо передать это в MySQL - существует ли более общий способ формирования запроса? – Chris

+0

@Chris: Не как-есть - MySQL не поддерживает аналитическую/ранжирующую функцию. –

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

Да, я знаю о NEWID. Мой вопрос заключался в том, как вытащить случайные записи для каждого состояния. – Chris

 Смежные вопросы

  • Нет связанных вопросов^_^