我需要从另一个表创建一个表,但我只希望在新表中添加最后10000个记录。任何人都可以通过修改此声明告诉我如何做到这一点:
create table export_cluster_125m
as
(select * from cluster_125m);
答案 0 :(得分:6)
你说你想要"最后" 10000行。假设这可以由诸如created_date
之类的列确定,则需要按该列排序(降序),然后获取该查询返回的前10000行。这可以使用ROWNUM完成,但不,如下所示:
-- Will not work correctly
select * from cluster_125m
where rownum <= 10000
order by created_date desc;
这将返回大约10000行,按created_date(降序)排序 - 但它们通常不是最新的10000行。要做到这一点,你需要像这样嵌套查询:
select * from
( select * from cluster_125m
order by created_date desc
)
where rownum <= 10000;
现在所有行都按降序排序,然后然后排出前10000行。
答案 1 :(得分:1)
试试这个:
create table export_cluster_125m
as
select * from cluster_125m where rownum<=10000;