1

是否可以根据条件运行查询?我的意思是,我有一张桌子,上面有 id、score、amt、time。我必须按 id 分组,并且必须为每个 id 获取最大分数记录,如果两个记录具有相同的 id 和分数,那么我必须去 amt,如果 amts 也相同,那么时间。

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

提前致谢。

4

1 回答 1

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

于 2013-04-26T11:27:14.577 回答