首页 > 解决方案 > 在 SQL 中同时从多列和多行计数

问题描述

我有一个匹配表,如下所示:

Match Win Lost
MOne   T1  T2
MTwo   T2  T3
MThr   T1  T3
MFou   T3  T4

我需要找到每支球队的总比赛,输出应该是这样的:

Team  Total_matches
T1      2
T2      2
T3      3
T4      1

我知道 SUM() 和 GROUP BY 子句,但无法在多个列上执行此操作。
任何帮助将不胜感激。

标签: mysqlsqlgroup-by

解决方案


您可以使用union allunpivot 数据然后聚合:

select team, count(*)
from ((select win as team
       from matches
      ) union all
      (select lost as team
       from matches
      )
     ) m
group by team

推荐阅读