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