Sql 如何使用Max()组合两个子查询
我有一张关于篮球比赛信息的表格,我需要找到赢得更多比赛的球队。该表如下所示:Sql 如何使用Max()组合两个子查询,sql,oracle,count,Sql,Oracle,Count,我有一张关于篮球比赛信息的表格,我需要找到赢得更多比赛的球队。该表如下所示: EQ1 EQ2 DATE RES1 RES2 -------------------------------------- CAL VAL 21/10/16 72 82 UNI VAL 24/02/17 58 68 RMA FCB 02/11/16 81 64 其中e1为本地队,res1为其得分,
EQ1 EQ2 DATE RES1 RES2
--------------------------------------
CAL VAL 21/10/16 72 82
UNI VAL 24/02/17 58 68
RMA FCB 02/11/16 81 64
其中e1为本地队,res1为其得分,e2为客队,res2为其得分
我尝试过不同的事情,但没有结果,stackoverflows中似乎没有解决这个问题的答案。我知道我可以通过以下查询知道一支球队赢了多少场比赛:
select *
from encuentros
where (eq1 = e1.eq1 and res1 > res2)
or (eq2 = e1.eq2 and res2 > res1);
这就是,成为本地人和赢家,或者成为访客和赢家。现在,我需要为每支球队都这样做,并获得赢得的最大比赛数量使用条件逻辑获得获胜球队,然后汇总:
select winning_team, count(*)
from (select (case when res1 > res2 then eq1 else eq2 end) as winning_team
from t
) t
group by winning_team
order by count(*) desc;
要仅获取一行,请在Oracle 12c+中使用
仅获取第一行
。或者使用子查询和rownum或分析函数。使用条件逻辑获取获胜团队,然后聚合:
select winning_team, count(*)
from (select (case when res1 > res2 then eq1 else eq2 end) as winning_team
from t
) t
group by winning_team
order by count(*) desc;
要仅获取一行,请在Oracle 12c+中使用
仅获取第一行
。或者使用子查询和rownum
或分析函数。好主意,非常感谢。另外,使用你的想法,我可以得到最大值而无需订购,并使用have重复代码。好主意,非常感谢。此外,使用您的想法,我可以获得最大值而无需订购,并使用have重复代码。