• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

Robin_Yao_Wenbin

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

对group by的一些理解

对group by的一些理解。

一直对sql中的group by使用的很少,也一直一知半解,今日有幸听到大佬的解读,觉得很有道理,查看网上的说明,觉得不便于理解,故特此记录此理解方式:
group by的作用是对by后面的类别进行分组,这个类别可以是一个也可以是多个,此外group by是先排序后分组。然后select中的东西必须是group by后面的内容,或者是聚合函数,否则就会报错,理解如下:
group by函数会先把数据集分组,并且一个分组对应一个类别,可以这样理解:这里写图片描述也就是说类别列被压缩成一个了,而其他列还是正常。这样一来,如果再select中还有其他列,比如姓名字段,那么就会报错,因为类别只有一个,而姓名有好多个,无法成表,于是报错。
这样一来便可以理解有group by的select语句必须是类别名或者是聚合函数这一点了。
这里再记录多个列作为分组依据的情况:
这里写图片描述图片来源于他人博文
我们看到使用group by all了之后“摘要”字段便变成了a2001,a2002。。。,可以看出这是在group by过程中将两列合并压缩了,实际上两列变成了一个字段,然后这个新字段相同的合并分组。

posted on 2018-08-28 19:48  Robin_Yao_Wenbin  阅读(431)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3