从SQL Server中的SELECT结果中获取最频繁的值

时间:2019-03-12 17:04:26

标签: sql-server select count

我的[dbo].[game]表中有4列:

  • team_home_id
  • team_away_id
  • score_home
  • score_away

通过执行以下查询,我可以得到赢得比赛的球队的ID。

select 
    (case 
        when ([dbo].[game].[score_away] < [dbo].[game].[score_home]) 
           then [dbo].[game].[team_home_id] 
           else [dbo].[game].[team_away_id] 
     end) as winning_team_id
from 
    [dbo].[game] 

结果示例:

12
2
3
5
7
4
...

有什么办法可以计数并获得在同一查询中赢得多数比赛的球队的身份证?

2 个答案:

答案 0 :(得分:2)

使用该查询和for root, dirs, files in os.walk(os.path.abspath("my_folder/")) : for file in tqdm(files): if file.endswith(".ext"): 获取获胜次数。
然后按获胜次数降序排列并获得第一行。

group by winning_team_id

答案 1 :(得分:1)

类似

select winning_team_id, count(*)
from ( select (case  when ([dbo].[game].[score_away] < [dbo].[game].[score_home]) 
                          then [dbo].[game].[team_home_id] 
                     else [dbo].[game].[team_away_id] 
               end) as winning_team_id
       from     [dbo].[game] ) winners
group by winning_team_id
order by 2 desc

将为您提供按获胜最多的球队编号排序的列表。

使用select top 1仅获得赢得最多比赛的球队,