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

MySQL查询:获取各年份最后可用月份的employee_count数据

MySQL查询:提取每年最后可用月份的员工数量

现有一张包含year、month、employee_count字段的数据表,需提取每个年份中最后可用月份对应的员工数量数据。

原始表数据

年份(year)月份(month)员工数量(employee_count)
20101230
201361205
20221200
2023120
20135123
20101133
20231045

期望查询结果

年份(year)月份(month)员工数量(employee_count)
20101133
201361205
20221200
20231045

解决方案

方法1:子查询关联(兼容所有MySQL版本)

先通过子查询获取各年份的最大月份,再关联原表匹配对应数据:

SELECT t.year, t.month, t.employee_count
FROM your_table t
INNER JOIN (
    SELECT year, MAX(month) AS max_month
    FROM your_table
    GROUP BY year
) tm ON t.year = tm.year AND t.month = tm.max_month;

将语句中的your_table替换为实际数据表名即可,该写法适配MySQL 5.x及以上所有版本。

方法2:窗口函数(MySQL 8.0+适用)

利用ROW_NUMBER()窗口函数按年份分组、月份倒序排序,筛选每组第一条数据:

SELECT year, month, employee_count
FROM (
    SELECT 
        year, 
        month, 
        employee_count,
        ROW_NUMBER() OVER (PARTITION BY year ORDER BY month DESC) AS rn
    FROM your_table
) t
WHERE rn = 1;
  • 该写法更简洁高效,仅支持MySQL 8.0及更高版本。
  • 若同一年份存在多个相同的最大月份记录,ROW_NUMBER()会随机返回一条;如需保留所有符合条件的记录,可将ROW_NUMBER()替换为RANK()或DENSE_RANK()。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 02:50:15