数据库(分组函数)

php中文网
发布: 2016-06-07 15:35:37
原创
1828人浏览过

分组函数:对表中一组记录进行操作,每次只返回一个结果。 常用的函数有: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);










最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号