如何运行嵌套查询取决于条件

时间:2013-04-26 11:17:14

标签: sql hive

是否可以根据条件运行查询? 我的意思是, 我有一张id,得分,amt,时间表。 我必须按ID进行分组,并且必须获得每个id的最高分记录, 如果两个记录具有相同的id和分数,那么我必须去amt,如果amts也一样,那么时间。

可以在单个查询中执行此操作!!

提前致谢。

1 个答案:

答案 0 :(得分:1)

如果你进行自我加入,这是可能的。但是,您有两个具有相同ID的记录这一事实表明您的数据库可能未被规范化。如果有任何事件,一般的想法是这样的:

select case
when t1.id = t2.id and t1.score = t2.score then t1.amt
else t1.time end fieldalias
from yourtable t1 join yourtable t2 on something
where whatever

但是,只有当amt和time是相同的数据类型时,这才有效。另外,我不知道用什么字段进行自我加入。