分组查询的 SQL 写法,是挺常见但又容易写错的一块。GROUP BY搭配聚集函数用得好,能省不少事。AVGSUM这些函数,用来统计平均值、总和,场景多,比如查订单金额、算班级平均分之类的,挺实用。

GROUP BY 的核心,其实就一句话:按照某列的值,把表里的数据分组。每组跑一遍函数,比如:SELECT 班级, AVG(成绩) FROM 学生成绩表 GROUP BY 班级,是不是一下就明白了?

HAVING这个关键字,和WHERE不太一样,它是过滤聚合结果的。你可以先分组求平均,再用HAVING AVG(成绩) > 80筛掉低分班,逻辑上更顺一点。

另外,推荐你顺手看看这几篇相关文章,MAX/MIN的用法、小心COUNT(*) vs COUNT(1)的性能坑,还有不少干货。

如果你最近在写报表、跑统计,或者在调 SQL 性能,嗯,这类函数你最好得熟练掌握才行。不然怎么敢说自己是写 SQL 的?