2015-02-06 2 views
0

у меня есть очень конкретный вопрос, касающийся использования SELECT DISTINCT ... INTO ...SELECT DISTINCT случайных столбцов ограничено числом

Я хочу, чтобы выбрать ровно 1000 случайных строк в новую таблицу с помощью SELECT DISTINCT, который образует комбинации строк из моей предыдущей таблицы. Например, мой текущий запрос:

SELECT DISTINCT p1.id AS id1, p2.id AS id2 INTO my_new_table FROM oldtable AS p1, oldtable AS p2; 

Как изменить это так, чтобы я выбрать не более 1000 случайных строк? Я имею дело с миллионами записей, поэтому решение, которое является эффективным, очевидно, желательно.

+2

'ORDER BY RAND() LIMIT 1000'? –

+0

Где вы помещаете указанную команду в мою команду? Поместив его в конец, выберем 1000 случайных строк из oldtable, но я хочу выбрать случайные строки в комбинациях строк. –

+0

'order by random()' не самый лучший вариант для больших таблиц - если это ваш интерес, см. Http://stackoverflow.com/questions/8674718/best-way-to-select-random-rows-postgresql – pozs

ответ

0

Это, как я хотел бы идти о выборе случайных 1000 строк быстро:

SELECT TOP 1000 
    FROM OldTable as OT 
    WHERE ... 
    ORDER BY NEWID()