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

MariaDB按dept_name分组统计学分总和并筛选低于30的查询方法

问题原因

SQL 语句的执行逻辑中,WHERE 子句会在 GROUP BY 分组操作之前执行,仅能对原始表的单行数据做过滤,无法作用于分组后生成的聚合计算结果(如总学分、计数等),因此你直接在 WHERE 后加总学分判断条件会触发语法错误。

解决方案

需要使用专门用于筛选聚合结果的 HAVING 子句,它的执行顺序在 GROUP BY 之后,可对分组后的聚合计算结果做过滤。

假设你的表名为 course,正确的查询语句如下:

SELECT dept_name, SUM(credits) AS total_credits
FROM course
GROUP BY dept_name
HAVING SUM(credits) < 30;

部分数据库(如 MySQL)支持在 HAVING 子句中直接使用聚合结果的别名,可简化为 HAVING total_credits < 30,写法更易读。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 13:39:03