数据库中的分组函数+练习题
来源:互联网 发布:sql 求平均值 编辑:程序博客网 时间:2024/05/01 14:52
一.常用的分组函数
1.统计数量 count(*)
2.求平均函数 Avg()
3.最大值max()
4.最小值min()
5.总数 sum()
二.特殊的分组函数
1.group by:按什么字段分组
2.having :对分好的组再次条件筛选(一般对分组函数筛选)
3.order by +字段 desc:按字段降序排列,默认升序ASC排列
4.where :单行筛选条件
注意:
1:分组函数一般出现在 select ,having
2.如果没有group by字句,select中不允许出现单行字段函数和分组函数混淆使用//select empno,avg(salary) from emp 是非法的
3.不允许在where条件中使用分组函数
三.练习题
- 找出每个月倒数第三天受雇的员工(如: 2009-5-29)
SELECT * FROM employees WHERE hire_date= last_day(hire_date) - 2;
2.找出 25 年前雇的员工
SELECT * FROM employees WHERE to_char(SYSDATE,’yyyy’) - to_char(hire_date,’yyyy’) > 10 ORDER BY hire_date ;
3.所有员工名字前加上 Dear ,并且名字首字母大写
SELECT ‘Dear ’ || initcap(first_name || ’ ’ ||last_name) FROM employees;
3.分组统计各部门下工资>500的员工的平均工资、
SELECT department_id,AVG(salary) FROM employees WHERE salary>5000 GROUP BY department_id;
4.算出每个职位的员工数和最低工资
SELECT job_id,COUNT(*) 人数,MIN(salary) 最低工资 FROM employees GROUP BY job_id;
5.列出员工表中每个部门的员工数,和部门no
SELECT department_id,COUNT(employee_id) FROM employees GROUP BY department_id;
6.得到工资大于自己部门平均工资的员工信息
SELECT e.*
FROM employees e,(SELECT department_id did,AVG(salary) avgsal FROM employees GROUP BY department_id) t
WHERE salary > avgsal AND e.department_id = t.did
7.查询员工编号 姓名 ,自己部门领导姓名
SELECT employee_id,FIRST_NAME,fname
FROM employees e,
(SELECT e.department_id did,first_name fname FROM employees e,departments d
WHERE e.employee_id=d.manager_id) t//括号里面临时表查询除数据
WHERE e.department_id= t.did AND first_name <> fname; – !=
- 数据库中的分组函数+练习题
- oracle数据库中的分组函数
- 数据库分组和分组函数
- 数据库(分组函数)
- 数据库分组函数
- 【数据库】分组函数
- 【Oracle数据库】分组函数
- 数据库中的分组
- oracle中的分组函数
- 数据库分组函数count(1)
- 数据库Oracle之分组函数
- Oracle数据库之SQL分组函数
- 数据库之聚合函数与分组
- oracle数据库(统计函数和分组查询)
- SQL中的分组和组函数
- 【Rollup】浅谈Oracle中的Rollup分组函数
- Python中的分组函数(groupby、itertools)
- Python中的分组函数(groupby、itertools)
- "围观"设计模式(15)--结构型之桥梁模式(Bridge Pattern)
- Java继承内存分配
- 工具类系列-StringSimpleRedisUtil
- ImageLoader缓存图片
- 3.uCOSIII中断管理
- 数据库中的分组函数+练习题
- 测试hibernate时报错Field 'id' doesn't have a default value
- iOS开发_iPhone 实现剪贴板操作_iPhone 复制粘贴功能
- 栈及实现(C语言)以及中缀式到后缀式的转换实例
- 代码静态分析工具 --- CppCheck
- c++引用的总结
- android动态注册广播,监听网络状态变化,判断网络模式
- QTP中与时间同步点:Sync、Wait、Waitproperty、Exist
- IOS中的单例模式