上一节中,我们学习了SQL的简单查询。但在现实生活中,我们除了查询数据外,还会对数据按照一定的标准进行分类,然后在分完类的基础上对各类别相关数据分别进行求和、求平均数、求个数、求最大值、求最小值等方法的汇总。这一节中,我们将简单学习SQL的分类汇总。
一、汇总
常用于汇总的有以下函数,我们称之为聚合函数,它们只针对列,因此又叫做列函数
二、
1、分组
group by与之对应的关键词“某类”、“每个”。如查询男女生的人数、查询每个学生的平均成绩等;
注意!!!!!!在高版本的navicat中会出现这样的情况
为什么会报错呢?按照运行顺序,sql先从score表中将数据按照课程号分组,接着选出课程号、最低成绩,然而在学号这里出现了错误,因为按照课程号分组的学号列有多条数组,而group by只能显示一个分组的一条数据,sql无法识该选哪条,所以报错。
以下这种情况也是同样的错误:
也就是说,我们在使用分组查询时,select语句中出现的字段要么是group by后的字段,要么是聚合函数或者汇总函数!
2、对分组结果指定条件
having,常跟聚合函数一起使用。
注意区分having和where
1、where只针对指定行,所以后面不可以跟聚合函数,having可以
2、优先级:where>聚合函数>having
三、排序
order by 列名1 desc/asc,列名2 desc/asc; (默认asc)
注意
1、进行多列排序时,左边列优先于右边列,即左边列排序成功,右边列不会再进行排序。
2、空值在前,其次是空字符串
四、限制
limit,限制查询结果的指定行数
五、SQL运行顺序