SELECT和GROUP BY的问题

SELECT和GROUP BY的问题

问题①
SELECT grade FROM student GROUP BY grade HEAVING count(age)>9为什么对,select中明明只有grade没有age,为什么having count(age)>9还对?
问题②
SELECT grade FROM student GROUP BY age HEAVING count(age)>9为什么对,select中明明只有grade没有age,为什么还正确?

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

group by后面没要求必须放select后面的列啊,只要能进行有效分组就能放

imooc_澈 2017-11-27 19:28:03

您好,having条件允许的情况有两种:1 前面select查询得到的列,2 通过聚合函数操作的内容,count(age)符合第二种情况,这也是sql的语法规则,不会报错。

  • 提问者 慕粉2152056708 #1
    SELECT grade FROM student GROUP BY age HAVING count(age)>9我想问为什么GROUP BY后面可以接age(因为select中明明只有grade没有age所以没懂为什么GROUP BY 可以接age我以为只能接grade),不是问HAVING 后面的count(age)>9
    2017-11-27 19:35:55
好帮手慕查理 2017-11-27 18:35:48

您好,HAVING后加的是聚合函数因此是可以成功的。如果HAVING后加的是字段,需要在select时查询。另您的SQL语句中HAVING拼写错误。如果解决了您的问题,请采纳,祝学习愉快!

  • 提问者 慕粉2152056708 #1
    可是问题② SELECT grade FROM student GROUP BY age HAVING count(age)>9中为什么group by可以 后面接age,但一开始select中明明只有grade没有age,为什么还正确?
    2017-11-27 19:14:23
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
PHP小白零基础入门
  • 参与学习           人
  • 提交作业       626    份
  • 解答问题       4930    个

想要学好Web后端开发的中流砥柱语言,本阶段为你轻松铺就扎实的基础,从前端网页布局的搭建到后台PHP开发,助你从零基础到掌握主流开发语言。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师