排序查询
语法: order by子句
- order by排序字段1排序方式1,排序字段2排序方式2…
排序方式:
*ASC :升序,默认的。
*DESC :降序。
**注意:**如果有多个排序条件,则当前边的条件值-样时,才会判断第二条件。
聚合函数
聚合函数即是将一列数据作为一个整体,进行纵向的计算。
-
count :计算个数
- -般选择非空的列:主键
- count(* )
-
max:计算最大值
-
min:计算最小值
-
sum :计算和
-
avg:计算平均值
*注意:聚合函数的计算,排除null值。
选择包含非空的列进行计算,就拿平均数来说,取值时分子除以分母,而分子中有null被算上,分母却没有算上,这样就会出现计算不准确。如下:
IFNULL函数
解决方案:
一般选择不包含非空的列进行计算或者用IFNULL函数。
分组查询:
1.语法: group by分组字段;
2.注意:
1.分组之后查询的字段:分组字段、聚合函数
2. where和having的区别:
1. where 在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来
2. where后不可以跟聚合函数,having可以进行聚合函数的判断。
select sex, count (sex) from student where age > 10 group by sex having count(sex) > 0;