我有一个基本查询,用于确定表中列的最大值:
select A.revenue_code_id, max(A.revenue_code_version) from rev_code_lookup A
group by A.revenue_code_id
这导致~580行(整个表有超过2400行)。
这适用于我的查询结果,但我不知道的是如何根据最大值将580行插入到新的for中。我意识到这不是正确的代码,但我想的是看起来像这样:
select * into new_table from rev_code_lookup where max(revenue_code_version)
答案 0 :(得分:2)
您可以使用row_number()
功能获取所需的数据。结合其他答案将结果插入表格中(我以一些额外的列为例):
Select
x.revenue_code_id,
x.revenue_code_version,
x.update_timestamp,
x.updated_by
From (
Select
revenue_code_id,
revenue_code_version,
update_timestamp,
updated_by,
row_number() over (partition by revenue_code_id Order By revenue_code_version Desc) as rn
From
revenue_code_lookup
) x
Where
x.rn = 1
答案 1 :(得分:1)
无论选择的复杂程度如何,另一个表中的插入始终是相同的方式:
insert into table
[unbeliavablycomplicatedselecthere]
所以在你的情况下:
insert into new_table
select A.revenue_code_id, max(A.revenue_code_version) from rev_code_lookup A
group by A.revenue_code_id
同样,如果您需要创建一个全新的表,请先执行此操作:
CREATE TABLE new_table
AS
select A.revenue_code_id, max(A.revenue_code_version) from rev_code_lookup A
group by A.revenue_code_id
这将创建相应的表模式,然后您可以执行上一个查询以插入数据。