您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

数据库(分组函数)

2025/1/16 4:47:37发布16次查看
分组函数:对表中一组记录进行操作,每次只返回一个结果。 常用的函数有:min,max,sum,avg,count等 min和max返回每组的最小和最大。 eg:select min(salary),max(salary) from employees; sum和avg函数分别返回总和平均。 eg:select sum(salary),avg(salary)
分组函数:对表中一组记录进行操作,每次只返回一个结果。
常用的函数有:min,max,sum,avg,count等
min和max返回每组的最小值和最大值。
eg:select min(salary),max(salary) from employees;
sum和avg函数分别返回总和平均值。
eg:select sum(salary),avg(salary) from emloyees;
count函数主要返回每组的记录条数。
eg:select count(*) from employees  where job_id=' ';
group by...having 子句的使用。
组函数忽略空值,可以使用nvl,nvl2,coalesce函数处理空值
eg:相同职位相同经理的员工的平均工资。
select job_id,manager_id,avg(salary) 
from employees
group by job_id,manager_id
*group by 子句注意问题:
1.group by 子句后面的列可以不再select 语句中出现。
2.select 子句中出现的 “非分组函数 ” 必须在group by子句中出现
having子句。
错误示例:
select job_id,max(salary)
from employees
where max(salary)>=8888
group by job_id;
原因是查询语句的执行顺序是:from  where group by select order by
正确示例:
select job_id,max(salary)
from employees
group by job_id
having max(salary)>8888;
总结select语句执行过程:
– 通过from子句中找到需要查询的表;
– 通过where子句进行非分组函数筛选判断;
– 通过group by子句完成分组操作;
– 通过having子句完成组函数筛选判断;
– 通过select子句选择显示的列或表达式及组函数;
– 通过order by子句进行排序操作。
eg:
select department_id,max(salary)
from employees
where department_id between 30 and 90
group by department_id
having max(salary)>8888
order by max(salary);

该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product