ORACLE
GROUP BY 大部分应用于组查询,用于归纳汇总相关数据。他不属于WHERE的子句。也就是说可以在WHERE的后面,当WHERE 默认为空时候,可以直接在FROM的后面
基本语法为:GROUP BY { COLUMN_NAME | { ROLLUP | CUBE } ( {COLUMN_NAME [, COLUMN_NAME ] .. } )}
注释:COLUMN_NAME :表中的字段名ROLLUP | CUBE :GROUP BY 子句的扩展,可以返回小计和总计记录
GROUP BY 通常配合聚合函数一起使用例:查询学生信息表中各个班级语文的平均成绩SELECT studentclass as 班级, AVG(Chinese) as 平均成绩 from Student_Information group by studentclass
GROUP BY 也可以配合排序对结果进行排序例:查询学生信息表中各个班级语文的平均成绩,按高到低排序SELECT studentclass as 班级, AVG(Chinese) as 平均成绩 from Student_Information group by studentclass ORDER BY 2 DESC--排序的具体用法可参照上一篇
HAVING 通常和GROUP BY 子句一起使用,限制搜索条件。与WHERE 不一样,WHERE 作用于单个值,HAVING 是作用于组。
例:查询学生信息表中各个班级语文的平均成绩,显示平均成绩大于90的班级信息SELECT studentclass as 班级, AVG(Chinese) as 平均成绩 from Student_Information group by studentclass HAVING AVG(Chinese)>90
查询使用>例:查询语文成绩大于90分的学生信息SELECT * FROM Student_Information WHERE Chinese>90
查询使用<例:查询语文成绩大于60分的学生信息SELECT * FROM Student_Information WHERE Chinese<60
查询使用<>例:查询除了一年级(1)班外所有学生信息SELECT * FROM Student_Information WHERE studentclass <> '一年级(1)班'也可以使用 !=SELECT * FROM Student_Information WHERE studentclass != '一年级(1)班'