Dream_Chaser~ 2022-04-20 13:30 采纳率: 40%
浏览 240
已结题

group by后面是否可以加两个字段,和having后一个字段答案是一样的,group by后面规定只能加一个字段吗?

select 班号,avg(身高) as 女生平均身高
from 学生表
where 性别='女'
group by 班号

select 班号,avg(身高) as 女生平均身高
from 学生表
group by 班号,性别
having 性别='女'

img

img

  • 写回答

5条回答 默认 最新

  • xtasce2012 2022-04-20 16:10
    关注

    1.你第一段sql,以班号分组,筛选性别为女,得到结果为各班级的女生平均身高;
    2.你第二段sql,以班号、性别分组,having筛选性别为女,目的也为查询各班的女生平均身高;
    3.执行结果上,第二段sql执行不了,原因是你group by 后的字段在select后没有写,如果select 班号,性别, avg (身高)是可以执行的;
    4.解析: where和having都是筛选条件,where是对from后的表进行条件筛选,having是对group by之后的数据集进行筛选。两者都是筛选条件,结果可以雷同,但是意义不同,而且可用where就先用where,再用haivng。题主对于sql执行先后顺序可以再去看看。希望对你有所帮助。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 4月28日
  • 已采纳回答 4月20日
  • 创建了问题 4月20日

悬赏问题

  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分