分组数据
创建分组
当Select多列的时候,利用GROUP BY可以按照某一列的分组进行聚集,相当于excel的数据透视表对数据的重新组合
关于GROUP BY的一些规则
1.GROUP BY后面可以接多个子句,数据将按照接的最后一个子句进行分组汇总
2.子句列出来的每个列都必须是检索列或者是有效的表达式
3.除了聚集计算语句,其他的select语句都必须在group by中给出,不然会报错1055
4.如果group by分组中有null值,那null将单独作为一个分组显示
5.顺序:where +group by+ order by
6.使用with rollup 可以对group by的数据加一行汇总
Having支持所有where的操作符, 唯一的区别是having是过滤分组,where是过滤行,一个是在聚集前过滤,一个是在分组聚集后过滤
ORDER BY用来排序order by desc/asc(降序/升序)
Select子句顺序
SELECT:要返回的列或者表达式
FROM:从中检索数据的表
WHERE:行级过滤,后面接条件
GROUP BY:分组说明,根据哪一列进行分组
HAVING:组级过滤
ORDER BY:输出排序顺序
LIMIT:要检索的行数
子查询通常使用在WHERE子句的IN操作符中,查询可以有多个子查询,查询的顺序为由内而外,需要注意的是限制有歧义的列名,用表.列的方式