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

如何基于其他列求和并按月分组,查询2018年各月答题量最高最低值

问题解答

实现结论

  • 完全可以通过单条SQL查询实现该需求,无需额外创建中间视图。

实现思路

  1. 首先构造2018年1-12月的完整月份序列,保证没有数据的月份也能正常在结果中展示
  2. 过滤原始表中2018年的有效数据,按用户名、月份两个维度分组,统计每个用户当月的总答题数
  3. 将完整月份序列与用户月度统计结果做左关联,按月份分组后取总答题数的最大值、最小值即可得到要求的结果

参考实现(以MySQL为例)

将代码中的your_table_name替换为实际的表名即可直接运行:

SELECT
    t.month AS Month,
    MAX(user_total) AS Highest,
    MIN(user_total) AS Lowest
FROM (
    -- 生成1-12月的两位格式月份序列
    SELECT '01' AS month UNION ALL SELECT '02' UNION ALL SELECT '03' UNION ALL
    SELECT '04' UNION ALL SELECT '05' UNION ALL SELECT '06' UNION ALL
    SELECT '07' UNION ALL SELECT '08' UNION ALL SELECT '09' UNION ALL
    SELECT '10' UNION ALL SELECT '11' UNION ALL SELECT '12'
) t
LEFT JOIN (
    -- 统计2018年每个用户每月的总答题数
    SELECT
        DATE_FORMAT(`Date`, '%m') AS month,
        SUM(`Correct Answers`) AS user_total
    FROM your_table_name
    WHERE YEAR(`Date`) = 2018
    GROUP BY `Name`, DATE_FORMAT(`Date`, '%m')
) u ON t.month = u.month
GROUP BY t.month
ORDER BY t.month;

如果使用PostgreSQL、Oracle等支持内置序列生成函数的数据库,生成月份序列的步骤可以进一步简化,整体核心逻辑通用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 06:15:06