有时候需要对查询结果进行分组,以便于我们对分组后的数据进行计算,可以使用数据分组操作
数据分组查询 group by
需要注意的是group by只是创建分组、并不能保证分组里面的数据排序。如果需要排序,可以使用order by
group by字句必须出现在where字句之后,order by之句之前
来看下分组实例,我指定了两个列,列名为accmplish_num是我想要分组的字段,
而别名为num的字段是对分组后的数据进行统计的总和,也就是说,我这个表里面accmplish_num为0出现了8次。
除了上面这种分组数据外,还可以对分组进行指定条件
过滤分组 使用having字句
where与having一起使用过滤
在他们一起使用的时候,注意先执行where后面的条件,再进行创建分组,统计,然后再统计num大于1的数据
子查询
说明:就是嵌套在其他字句查询里面的查询
需求:我们知道订单表中的线路line_id,想要找出线路为15的乘客的所有信息
看下面的例子,先找出线路line_id=15的订单表中的所有乘客手机号,这个就是括号里面的子查询
然后在乘客表里面找出mobile在子查询中的所有乘客的信息,也就满足了我们需求,当然这只是简单的一层嵌套,你也可以使用多层,
但是并不建议嵌套太多,因为这样做在工作中影响查询效率