Vertica子查询有限制

时间:2013-10-30 10:19:08

标签: vertica

我在编写带有限制1 的子查询时遇到问题,以获得最高记录。

这是我的问题示例。

表大师(id,set)

enter image description here

表格明细(ID,设置,代码)

enter image description here

我正在尝试获取 Master 表中每个集的最新代码。

以下是我尝试的查询,但得到的错误是相关子查询不支持限制1,它应该包含GROUP By子句。

select id,set,(select code from detail where set=master.set order by id desc limit 1) from master;

结果就像是

enter image description here

请帮助我,如果这是错误的方式,我是这个vertica数据库的新手。

是的。

1 个答案:

答案 0 :(得分:2)

我不确定该特定错误,但您可以使用rank()解析函数生成如下结果:

select id, set, code from (
    select M.id, D.set, D.code, rank() over (partition by D.set order by D.id desc) as rank
    from detail as D 
    right outer join master as M 
        on D.set = M.set) as ranks 
where rank = 1 
order by id;

内部子查询使用rank()函数为集合中的每一行分配排名。外部查询只选择排名为1的行。