Use count where id=id - oracle



使用oracle live sql尝试显示"排名"视图, 使用中的两个表是 MATCH 和 TEAM 所以每次比赛。WIN_TEAM = 显示为计数的团队的 ID

我想我的计数功能有问题。我知道我可以很容易地拉到哪里

所以它会是 TEAM_NAME胜

这只是拉起团队,子查询不起作用。 我走在正确的轨道上吗?

select A.TEAM, B.W
from TEAM A
left join 
(
select MATCH.WIN_TEAM, 
Count(MATCH.WIN_TEAM) as W
from   MATCH
group by MATCH.WIN_TEAM
) B
on A.ID = B.WIN_TEAM
order by B.W desc;

我是新手,哈尔普。我猜我也需要别名?

select TEAM.NAME ,copy_match.count_match
from TEAM 
left join (select MATCH.WIN_TEAM as WIN_TEAM, 
Count(MATCH.WIN_TEAM) AS count_match
from   MATCH
group by MATCH.WIN_TEAM
) copy_match
on TEAM.ID=copy_match.WIN_TEAM;

即使从技术上讲,它有效,我认为您的查询过于复杂

select TEAM.NAME ,COUNT(MATCH.WIN_TEAM)
from TEAM 
left join
MATCH ON TEAM.ID=MATCH.WIN_TEAM
GROUP BY TEAM.NAME
ORDER BY COUNT(MATCH.WIN_TEAM)

这个版本不是更容易一点吗? 或者也许我错过了一个细节

最新更新