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

如何按Season分组提取count(*)最大值对应的记录?

解决方案:按季节找出count(*)最大值对应的记录

你遇到的问题是因为直接嵌套聚合函数max(count(*))只能得到每个季节的最大数值,但无法关联到对应的Name字段。下面提供两种常用的解决方法:

方法一:使用窗口函数(推荐,适用于MySQL 8.0+、PostgreSQL、SQL Server等支持SQL:2003及以上的数据库)

窗口函数可以给每个季节内的记录按count(*)排序,再筛选出排序第一的记录:

WITH ranked_data AS (
    SELECT 
        Name,
        Season,
        `count(*)`,
        ROW_NUMBER() OVER (PARTITION BY Season ORDER BY `count(*) DESC`) AS rn
    FROM your_table_name
)
SELECT Name, Season, `count(*)`
FROM ranked_data
WHERE rn = 1;

如果同一季节存在多条count(*)相同且均为最大值的记录,想要保留所有这类记录,可将ROW_NUMBER()替换为RANK():

WITH ranked_data AS (
    SELECT 
        Name,
        Season,
        `count(*)`,
        RANK() OVER (PARTITION BY Season ORDER BY `count(*) DESC`) AS rn
    FROM your_table_name
)
SELECT Name, Season, `count(*)`
FROM ranked_data
WHERE rn = 1;

方法二:使用子查询关联(兼容老版本数据库)

先找出每个季节的最大count(*)值,再关联原表获取对应的完整记录:

SELECT t.Name, t.Season, t.`count(*)`
FROM your_table_name t
INNER JOIN (
    SELECT Season, MAX(`count(*)`) AS max_count
    FROM your_table_name
    GROUP BY Season
) m ON t.Season = m.Season AND t.`count(*)` = m.max_count;

该方法同样会保留同一季节中count(*)等于最大值的所有记录,若只需保留一条,可根据需求添加额外筛选条件。

注意:将上述代码中的your_table_name替换为你实际使用的表名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 23:39:08