group by

student

select class_id from student group by sex // 按照性别分组

  • 为什么查询列表(或having子句)中只能写group by中的字段(或者聚合函数)?

假设我们分组查询之后有一个中间表,如下所示:


分组查询之后的中间表

如果我们要执行如下的sql语句:
select name,age from student group by sex

  • 上面的中间表中只有两组数据,但是每组数据中有多条数据,那么我们应该返回哪一个数据的 nameage呢?
    很明显这条sql语句是不能执行的。
  • 那么我们为什么可以使用聚合函数呢?

首先,聚合函数是指:对一组值执行计算,并返回单个值。(即多个输入,单个输出)

再次查看我们的中间表,分组之后的每组数据中都有多条数据,但是我们只需要一个值,正好符合聚合函数的规范。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容