12(查询数据【高级】)
完整查询语句语法:
select 选项 字段名 from 数据源 where 条件 group by 分组 having 条件 order by 排序 limit 限制;
1、选项:系统该如何对待查询得到的结果
(1)all(全部):保存显示所有的记录
(2)distinct(去重):去除重复的记录,只保留一条(所有字段相同)
别名:语法(字段 as 别名 或 字段 别名)
2、数据源:具有二维结构的数据
(1)单表数据:from 表
(2)多表数据:from 表1,表2,……
(3)动态数据:from (select 字段名 from 数据表)as 别名;
一、where子句
即通过查询相应的记录,通过where进行条件判断,从而将符合条件的记录保存到内存中进行显示
二、聚合函数(group by子句)
为了便于统计,指定相应的字段进行分组
1、分组统计
语法:group by 字段名;
常用统计函数(聚合函数):
(1)count():统计每组的数量
(2)avg():平均值
(3)aum():求和
(4)max():最大值
(5)min():最小值
2、多分组
对已经分组的记录进行再分组处理
语法:group by 字段1,字段2; //先按照字段1进行分组,之后再按字段2进行分组。
3、分组排序
对数据记录按照相关字段进行排序处理,默认为升序
语法:group by 字段 【asc(升)| desc(降)】;
4、回溯统计
进行在分组之后,在上报统计的过程中,需要层层上报,这个过程即为回溯统计。
语法:group by 字段名 【asc | desc】with rollup;
三、having子句
用于在group by子句之后,对分组的数据进行统计筛选
四、order by子句
五、limit子句