You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL多GROUP BY用法:赛扬奖获奖赛季按联赛分组格式化输出

赛扬奖获奖统计SQL调整方案

问题原因

你当前的SQL直接将单条获奖记录拼接为「年份(联赛)」的独立条目,没有先按联赛维度合并同联赛的所有获奖年份,因此输出格式不符合要求。

解决思路

采用两层分组聚合实现需求:

  1. 内层按「球员+联赛」维度分组,将同一联赛下的所有获奖年份用逗号拼接,末尾带上联赛名称,生成类似2021, 2020 (18+)的单联赛结果
  2. 外层按「球员」维度分组,将所有单联赛结果用分号拼接,同时统计总获奖次数

调整后完整SQL

SELECT 
    PLAYER_NAME,
    SUM(league_win_count) AS TotalWins,
    GROUP_CONCAT(league_season_str ORDER BY LEAGUE_ID ASC SEPARATOR '; ') AS Seasons
FROM (
    SELECT 
        PLAYER_NAME,
        L.LEAGUE_ID,
        COUNT(*) AS league_win_count,
        CONCAT(
            GROUP_CONCAT(S.SEASON_YEAR ORDER BY S.SEASON_YEAR DESC SEPARATOR ', '),
            ' (', L.LEAGUE_NAME, ')'
        ) AS league_season_str
    FROM CY_YOUNG
    JOIN SEASONS S ON S.SEASON_ID = CY_YOUNG.SEASON_ID
    JOIN LEAGUES L ON L.LEAGUE_ID = S.LEAGUE_ID
    WHERE CY_YOUNG.PLACE = 1
    GROUP BY PLAYER_NAME, L.LEAGUE_ID, L.LEAGUE_NAME
) AS player_league_stats
GROUP BY PLAYER_NAME
HAVING TotalWins > 1
ORDER BY TotalWins DESC;

效果说明

针对示例数据,Andrew Jones的查询结果为:

  • TotalWins:4
  • Seasons:2021, 2020 (18+); 2021 (28+); 2021 (38+)
    完全匹配你要求的展示格式。如果需要调整年份、联赛的排序规则,修改对应ORDER BY参数即可。

内容的提问来源于stack exchange,提问作者Dan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 21:06:05