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

Sql 如何运行嵌套查询取决于条件,sql,hive,Sql,Hive,是否可以根据条件运行查询? 我是说, 我有一张有id、分数、金额、时间的桌子。 我必须按id分组,并且必须获得每个id的最大分数记录, 如果两个记录具有相同的id和分数,那么我必须选择amt,如果amt也相同,则选择时间 可以在单个查询中完成此操作 提前感谢。如果您进行自加入,就有可能。但是,您有两个具有相同id的记录这一事实表明,您的db可能没有标准化。如果发生任何事件,总体思路如下: select case when t1.id = t2.id and t1.score = t2.score

是否可以根据条件运行查询? 我是说, 我有一张有id、分数、金额、时间的桌子。 我必须按id分组,并且必须获得每个id的最大分数记录, 如果两个记录具有相同的id和分数,那么我必须选择amt,如果amt也相同,则选择时间

可以在单个查询中完成此操作


提前感谢。

如果您进行自加入,就有可能。但是,您有两个具有相同id的记录这一事实表明,您的db可能没有标准化。如果发生任何事件,总体思路如下:

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是相同的数据类型时,这才有效。另外,我不知道使用哪个字段来进行自我加入

如果您进行自联接,这是可能的。但是,您有两个具有相同id的记录这一事实表明,您的db可能没有标准化。如果发生任何事件,总体思路如下:

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是相同的数据类型时,这才有效。另外,我不知道使用哪个字段来进行自我加入