СОЗДАЙТЕ КАК С помощью SELECT TOP 10000 - PullRequest
0 голосов
/ 22 марта 2012

Мне нужно создать таблицу из другой таблицы, но я хочу, чтобы в новую таблицу были добавлены только последние 10000 записей.Может ли кто-нибудь сказать мне, как это можно сделать, изменив это утверждение:

create table export_cluster_125m
as
(select * from cluster_125m);

Ответы [ 2 ]

6 голосов
/ 22 марта 2012

Вы говорите, что хотите "последние" 10000 строк. Предполагая, что это может быть определено столбцом, таким как created_date, вам нужно упорядочить по этому столбцу (по убыванию), а затем взять первые 10000 строк, возвращенных этим запросом. Это можно сделать с помощью ROWNUM, но не , например:

-- Will not work correctly
select * from cluster_125m
where rownum <= 10000
order by created_date desc;

Это вернет около 10000 строк, упорядоченных по методу create_date (по убыванию), но обычно они не будут последними 10000 строками. Для этого вам нужно вложить запрос так:

select * from
( select * from cluster_125m
  order by created_date desc
)
where rownum <= 10000;

Теперь все строки сортируются в порядке убывания, и затем берут первые 10000.

1 голос
/ 22 марта 2012

попробуйте это:

create table export_cluster_125m
as
select * from cluster_125m where rownum<=10000;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...