一、组函数
组函数也叫:统计函数/多行函数/聚合函数
max(列名):求最大值
min(列名):求最小值
sum(列名):求和
avg(列名):求平均值
count(*):计算总数
count(expr):返回在列中有expr指定的非控制的总数
count(distinct expr):去重,在expr指定的列
其中需要注意的:avg和sum函数参数类型只能是数字count/max/min参数类型可以是日期,字符和数字组函数会默认忽略控制,可以在组函数中使用nvl来处理空值
单行函数对查询到每个结果集做处理,而组函数只对分组 数据做处理
单行函数对每个结果集返回一个结果,而组函数对每个分组返回一个结果

查询分组:用group by 列名1,列名2...。
需要注意:如果在select语句中包含了组函数,就不能选择单独的列出现在group by 子句中,因为他不知道要跟谁做比较,如果查询语句中出现了组函数和其他列,要查询的列必须出现在group by 语句中(组函数除外)
如果在查询分组中加条件需要用having 关键字
所以完整的查询语句:selcet 列名... from 表名 where 子语句 group by 列名 having 条件 roder by 排序列

约束分组结果:having关键字
如果在查询分组中加条件筛选结果需要用having 关键字
所以完整的查询语句:selcet 列名... from 表名 where 子语句 group by 列名 having 条件 roder by 排序列

二、子查询
子查询也是一个select语句,他是嵌套在另一个select语句中的子句(把一个查询语句的结果当作条件查询)

需要注意:
1.子查询语句必须用括号括起来(区分优先级)且在主查询之前执行一次
2.若需要放在比较中,子查询放在比较条件的右边
3.子查询的结果被用于主查询
子查询的分类:
1.单行子查询:子查询语句只返回一行的查询(使用单行比较符)
单行子查询可以使用的运算符:


在子查询中显示多行数据需要注意的:

2.多行子查询:子查询语句返回多行的查询(使用多行比较符)
多行子查询使用的比较符号:(能用多行的都可以用连接实现,而且效率更高)



any和all的区别以及用法:
all:代表所有
