`

每个部门,,每个职位的平均工资和平均奖金(平均值包括没有奖金),如果平均奖金大于300,显示“奖金不错”,如果平均奖金100 到300,显示“奖金一般”,如果平

阅读更多

---方法1

select decode(deptno,10,'财务部',20,'研发部',30,'销售部','未知部门') dept,round(avg(sal),0),round(avg(nvl(comm,0)),0),case 

when avg(nvl(comm,0))>300 then '奖金不错'

when avg(nvl(comm,0))>100 and avg(nvl(comm,0))<300 then '奖金一般'

when avg(nvl(comm,0))<100 then '几乎没奖金' 

end status 

from emp

group by deptno 

order by deptno desc,avg(sal) desc;

 

---方法2

select decode(deptno,10,'财务部',20,'研发部',30,'销售部','未知部门') dept,round(avg(sal),0),round(avg(nvl(comm,0)),0),

decode(

 sign(round(avg(nvl(comm,0)),0)-300),

       1,'奖金不错',

       0,'奖金不错',

       -1,decode(

             sign(round(avg(nvl(comm,0)),0)-100),

               1,'奖金一般',

               0,'奖金一般',

               -1,'几乎没有奖金'

             )

)

as status from emp

group by deptno

order by deptno desc,avg(sal) desc;

 

分享到:
评论

相关推荐

    查询语句练习

    此查询不仅检查员工薪资是否高于平均值,还考虑了部门归属和领导关系。这有助于识别表现优异的员工及其工作环境。 10. **查询与SCOTT相同职位但非SCOTT本人的员工** 查询通过子查询找到SCOTT的职位,然后在外部...

    Oracle教程(二) 基础 教程

    6. **算出每个部门、每个职位的平均工资和平均奖金,并根据不同平均奖金区间显示不同信息** ```sql SELECT deptno, job, AVG(sal) AS avg_sal, AVG(comm) AS avg_comm, CASE WHEN AVG(comm) &gt; 300 THEN '奖金...

    Oracle练习题及答案(二).doc

    通过`WHERE`子句筛选出职位为"MANAGER"的员工,然后对每个部门的经理薪资进行分组和求最小值。 19. 列出按年薪排序的雇员 这题未给出具体实现,通常可以使用`ORDER BY`对年薪进行排序,年薪可以通过`sal * 12`计算...

    oracle实验四.docx

    这将按部门编号和岗位进行分组,并计算每个部门每个岗位的平均工资和最高工资。 **案例四:查询编码在50以下的各部门的部门编号以及最高工资平均工资,显示平均工资大于2000** 为了筛选出符合条件的数据,可以在...

    SQL练习题网络数据库

    例如,统计每个部门的员工数量、平均工资等。 4. 连接查询: 连接查询用于从两个或多个表中获取相关联的数据行。可以使用INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL JOIN等。例如,查询员工的姓名及直接上级的姓名,...

    SQL数据库

    - **解释**:使用聚合函数`COUNT()`、`AVG()`以及`DATEDIFF()`函数来计算每个部门的员工数量、平均工资和平均服务期限。 #### 14. 列出所有员工的姓名、部门名称和工资 ```sql SELECT E.ENAME AS "员工", D.DNAME ...

    Oracle经典练习

    #### 十九、分组统计每个部门下,每种职位的平均奖金(也要算没奖金的人)和总工资(包括奖金) - **SQL语句**: ```sql select avg(nvl(comm, 0)) as avg_bonus, sum(sal + nvl(comm, 0)) as total_salary, deptno,...

    Oracle经典练习题及标准答案

    - 使用子查询来获取每个员工所在部门的平均工资。 - 主查询用来筛选出工资大于平均工资的员工信息。 这些练习题覆盖了Oracle数据库中的基础到高级查询技术,包括基本的SELECT查询、条件筛选、函数应用、排序操作...

    oracle分组函数

    - **查询所有员工每个月的工资总和和平均工资**:这需要按照月份对数据进行分组,并计算每个月的工资总和和平均工资。 - **查询工资最高和最低的金额**:这可以通过使用`MAX()`和`MIN()`函数来实现。 - **查询公司的...

    SQL数据库语句测试.docx

    统计每个部门的部门编号、部门平均工资、部门人数,查询结果按照平均工资升序排列 ```sql SELECT d.deptno, AVG(e.sal) AS 平均工资, COUNT(*) AS 部门人数 FROM dept d JOIN emp e ON d.deptno = e.deptno GROUP ...

    oracle的对象及其管理

    5. 统计每个部门各工种的人数与平均工资: 使用GROUP BY子句按deptno和job分组,然后使用COUNT(*)计算人数和AVG(sal)计算平均工资。 6. 查询工资排名前5的员工信息: 使用子查询获取按工资降序排列的前5个员工的...

    7实验七 基本路径测试用例设计 1

    实验的第一部分要求设计一个测试用例,该程序接收最多50个输入值(以-1作为结束标志),统计有效学生分数的数量、总分和平均值。为了设计测试用例,我们需要进行以下步骤: 1. **复杂度计算**:计算程序的圈复杂度...

    常见Oracle数据库面试题目

    - 使用`AVG(sal)`计算每个部门的平均工资。 SQL语句示例: ```sql SELECT deptno, COUNT(*) AS employee_count, AVG(sal) AS average_salary FROM emp GROUP BY deptno; ``` #### 14. 列出所有员工的姓名、部门...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

     删除环境变量中的PATHT CLASSPATH中包含Oracle的值。  删除“开始”/“程序”中所有Oracle的组和图标。  删除所有与Oracle相关的目录,包括: C:\Program file\Oracle目录。 ORACLE_BASE目录。 C:\Documents ...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    他认为对于SQL的学习是永无止境的,相信每一个查询Oracle数据库的人都需要精通SQL语言,才能写出高效的查询。他参与本书的编写就是为了帮助别人实现这一目标。 目录 封面 -11 封底 -10 扉页 -9 版权 -8 版权声明 -7...

    oracle实验报告

    3、 通过dept表查询出所有部门号,对每个部门雇员的工资进行调整,将工资高于(包含$2000)$2000的雇员每人增加$500,将工资低于$2000的雇员每人增加到$2000。但应注意雇员工资调整后不应大于$10000,否则显示出错信息,...

    网络数据库实验2的sql查询

    ` 查询1月份奖金平均数大于200元的部门,并按平均奖金降序排列。 7. **连接查询**(2-7):`SELECT p.*, d.dname FROM person p, dept d WHERE p.deptno=d.deptno AND d.dname='人事部';` 通过 `INNER JOIN` 连接 `...

    Oracle练习笔试大全

    //按照deptno分组,查看每个部门的平均工资 55、select max(sal) from emp group by deptno, job; //分组的时候,还可以按照多个字段进行分组,两个字段不相同的为一组 56、select ename from emp where sal = ...

    oracle面试题

    列出在每个部门工作的员工数量、平均工资。 - **知识点**: - 使用`COUNT()`计算每组的数量。 - 使用`AVG()`计算每组的平均值。 - **SQL语句**: ```sql SELECT deptno, COUNT(*), AVG(sal) FROM emp ...

Global site tag (gtag.js) - Google Analytics