group by

作者: 编码之路从零开始 | 来源:发表于2019-09-26 08:57 被阅读0次
student

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

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

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


分组查询之后的中间表

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

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

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

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

相关文章

网友评论

      本文标题:group by

      本文链接:https://www.haomeiwen.com/subject/rfbuuctx.html