--知识点一个
--组函数(多行函数)
-- 作用于行集的组函数给了每个组一个结果(将若干行分成几个组)
-- 组函数出现于select的列和having子句中
-- 在select声明的group by子句将行细分为更小的组,having子句用来限制结果集
--组函数使用语法
-- select column,group_function
-- from table
-- [where condition]
-- [group by group_by_expression]
-- [having group_condition]
-- [order by column]
--常见组函数
-- AVG(distinct/all/n): 求列平均值
-- COUNT(distinct/all/expr/*): 统计行(记录数)
-- MAX(distinct/all/expr): 求列的最大值
-- MIN(distinct/all/expr): 求列的最小值
-- SUM(distinct/all/n): 求列的总和
-- VARIANCE(distinct/all/n): 离散差
-- STDDEV(distinct/all/n): 标准差
-- distinct:唯一值(不包括重复值)
-- all: 所有值(包括重复值),不包括空值
-- n: 代表所操作的列为数值类型
-- expr: 代表所操作的列可为任意操作类型
--count(*):统计行(包括空行)
--count(col):不计算空的列值,其他组函数都不对空值进行计算
--只能操作数值类型的列:avg()和sum()
--能操作字符串、日期、数值类型列:count(),max(),min()
--例1(除了组函数里面以外的字段,全部都要在group by子句中,否则出现不是group by表达式的错误)
select e.deptno,e.ename from emp e group by e.deptno,e.ename,e.mgr having e.mgr like '_9%';
--例2
select avg(distinct e.sal),avg(all e.sal),avg(e.sal),count(*),count(e.mgr),max(e.ename) from emp e;
--组函数(多行函数)
-- 作用于行集的组函数给了每个组一个结果(将若干行分成几个组)
-- 组函数出现于select的列和having子句中
-- 在select声明的group by子句将行细分为更小的组,having子句用来限制结果集
--组函数使用语法
-- select column,group_function
-- from table
-- [where condition]
-- [group by group_by_expression]
-- [having group_condition]
-- [order by column]
--常见组函数
-- AVG(distinct/all/n): 求列平均值
-- COUNT(distinct/all/expr/*): 统计行(记录数)
-- MAX(distinct/all/expr): 求列的最大值
-- MIN(distinct/all/expr): 求列的最小值
-- SUM(distinct/all/n): 求列的总和
-- VARIANCE(distinct/all/n): 离散差
-- STDDEV(distinct/all/n): 标准差
-- distinct:唯一值(不包括重复值)
-- all: 所有值(包括重复值),不包括空值
-- n: 代表所操作的列为数值类型
-- expr: 代表所操作的列可为任意操作类型
--count(*):统计行(包括空行)
--count(col):不计算空的列值,其他组函数都不对空值进行计算
--只能操作数值类型的列:avg()和sum()
--能操作字符串、日期、数值类型列:count(),max(),min()
--例1(除了组函数里面以外的字段,全部都要在group by子句中,否则出现不是group by表达式的错误)
select e.deptno,e.ename from emp e group by e.deptno,e.ename,e.mgr having e.mgr like '_9%';
--例2
select avg(distinct e.sal),avg(all e.sal),avg(e.sal),count(*),count(e.mgr),max(e.ename) from emp e;