老师为什么我这里用SUM(sex),女那组会有4个人呢?
老师为什么我这里用SUM(sex),女那组会有4个人呢?
2
收起
正在回答
10回答
同学你好,老师说的不加having查询是指去掉having age>25这个查询条件,具体的语句如下:
SELECT sex,GROUP_CONCAT(username) AS '用户名', age AS '年龄', COUNT(*) AS '总人数' FROM user GROUP BY sex;
同学按照这个语句查询一下,查看结果中的age是否大于25。
祝:学习愉快~
好帮手慕阿满
2019-05-09 14:33:04
同学你好,
1、统计组中人数应该使用COUNT计数函数,而不是SUM求和函数。
2、SUM(),MAX(),MIN(),AVG()这几个函数如果统计字段不是数字,得出的可能是不正确的值。这几个都是数学函数,只能用来对数值进行计算。
3、关于where和having:having只能用在group by之后,对分组后的结果进行筛选(即使用having的前提条件是分组)。where在group by 之前使用,另外where后的条件表达式里不允许使用聚合函数,而having可以。
4、使用having时,having后的要么是聚合函数,要么条件中的字段出现在select中,而同学的第2个截图中不满足条件,所以报错。
5、使用having age>25查询出来是empty set是正常的,因为同学不使用having查询出来的结果中age是小于等于25,所以加上having age>25,查询结果为空。同学可以去掉having查询试试 。
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
3. Java 数据库开发与实战应用
- 参与学习 人
- 提交作业 357 份
- 解答问题 8016 个
本阶段将带你学习MySQL数据库,JDBC接口,MyBatis框架等,带你掌握的数据的存放和管理。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星