Oracle SQL:经典查询练手第四篇(1)(3)
/* --------6、哪些员工的工资,高于整个公司的平均工资, 列出员工的名字和工资(降序)。 ---------*/ SQL SELECT FIRST_NAME|| '' ||LAST_NAME,SALARY 2 FROM EMPLOYEES 3 W
:http://www.cnblogs.com/huyong/archive/2011/06/22/2086772.html
- /*--------6、哪些员工的工资,高于整个公司的平均工资,
- 列出员工的名字和工资(降序)。---------*/
- SQL> SELECT FIRST_NAME || ' ' || LAST_NAME,SALARY
- 2 FROM EMPLOYEES
- 3 WHERE SALARY > (
- 4 SELECT AVG(SALARY)
- 5 FROM EMPLOYEES
- 6 )
- 7 ORDER BY SALARY DESC;
- FIRST_NAME||''||LAST_NAME SALARY
- ---------------------------------------------- ----------
- Steven King 24000.00
- Neena Kochhar 20000.00
- Lex De Haan 20000.00
- John Russell 14000.00
- Karen Partners 13500.00
- Michael Hartstein 13000.00
- Nancy Greenberg 12000.00
- Alberto Errazuriz 12000.00
- Shelley Higgins 12000.00
- Lisa Ozer 11500.00
- Den Raphaely 11000.00
- Gerald Cambrault 11000.00
- Ellen Abel 11000.00
- Eleni Zlotkey 10500.00
- Clara Vishney 10500.00
- Peter Tucker 10000.00
- Janette King 10000.00
- Harrison Bloom 10000.00
- Hermann Baer 10000.00
- Tayler Fox 9600.00
- --共50条数据
- /*--------7、哪些员工的工资,介于50号 和80号 部门平均工资之间。---------*/
- SQL> SELECT FIRST_NAME || ' ' || LAST_NAME AS NAME,SALARY
- 2 FROM EMPLOYEES
- 3 WHERE SALARY
- 4 BETWEEN
- 5 (SELECT AVG(SALARY) FROM EMPLOYEES
- 6 WHERE DEPARTMENT_ID = 50)
- 7 AND (SELECT AVG(SALARY) FROM EMPLOYEES
- 8 WHERE DEPARTMENT_ID = 80);
- NAME SALARY
- ---------------------------------------------- ----------
- Bruce Ernst 6000.00
- David Austin 4800.00
- Valli Pataballa 4800.00
- Diana Lorentz 4200.00
- John Chen 8200.00
- Ismael Sciarra 7700.00
- Jose Manuel Urman 7800.00
- Luis Popp 6900.00
- Matthew Weiss 8000.00
- Adam Fripp 8200.00
- Payam Kaufling 7900.00
- Shanta Vollman 6500.00
- Kevin Mourgos 5800.00
- Renske Ladwig 3600.00
- Trenna Rajs 3500.00
- Christopher Olsen 8000.00
- Nanette Cambrault 7500.00
- Oliver Tuvault 7000.00
- Lindsey Smith 8000.00
- Louise Doran 7500.00
- Sarath Sewall 7000.00
- Mattea Marvins 7200.00
- David Lee 6800.00
- Sundar Ande 6400.00
- Amit Banda 6200.00
- William Smith 7400.00
- Elizabeth Bates 7300.00
- Sundita Kumar 6100.00
- Alyssa Hutton 8800.00
- Jonathon Taylor 8600.00
- Jack Livingston 8000.00
- Kimberely Grant 7000.00
- Charles Johnson 7211.00
- Nandita Sarchand 4200.00
- Alexis Bull 4100.00
- Kelly Chung 3800.00
- Jennifer Dilly 3600.00
- Sarah Bell 4000.00
- Britney Everett 3900.00
- Jennifer Whalen 4400.00
- Pat Fay 6000.00
- Susan Mavris 6500.00
- William Gietz 8300.00
- 43 rows selected
- /*--------8、所在部门平均工资高于5000 的员工名字。---------*/
- SQL> SELECT FIRST_NAME || ' ' || LAST_NAME AS NAME,SALARY
- 2 FROM EMPLOYEES
- 3 WHERE DEPARTMENT_ID IN
- 4 (SELECT DEPARTMENT_ID FROM EMPLOYEES
- 5 GROUP BY DEPARTMENT_ID
- 6 HAVING AVG(SALARY) > 5000);
- NAME SALARY
- ---------------------------------------------- ----------
- Michael Hartstein 13000.00
- Pat Fay 6000.00
- Susan Mavris 6500.00
- Alexander Hunold 9000.00
- Bruce Ernst 6000.00
- David Austin 4800.00
- Valli Pataballa 4800.00
- Diana Lorentz 4200.00
- Hermann Baer 10000.00
- John Russell 14000.00
- Karen Partners 13500.00
- Alberto Errazuriz 12000.00
- Gerald Cambrault 11000.00
- Eleni Zlotkey 10500.00
- Peter Tucker 10000.00
- David Bernstein 9500.00
- Peter Hall 9000.00
- Christopher Olsen 8000.00
- Nanette Cambrault 7500.00
- Oliver Tuvault 7000.00
- --等54行数据…
- /*--------9、列出各个部门中工资最高的员工的信息:名字、部门号、工资。---------*/
- SQL> SELECT FIRST_NAME || ' ' || LAST_NAME AS NAME
- 2 ,SALARY,DEPARTMENT_ID
- 3 FROM EMPLOYEES
- 4 WHERE (DEPARTMENT_ID,SALARY) IN
- 5 (SELECT DEPARTMENT_ID,MAX(SALARY)
- 6 FROM EMPLOYEES
- 7 GROUP BY DEPARTMENT_ID);
- NAME SALARY DEPARTMENT_ID
- ---------------------------------------------- ---------- -------------
- Jennifer Whalen 4400.00 10
- Michael Hartstein 13000.00 20
- Den Raphaely 11000.00 30
- Susan Mavris 6500.00 40
- Adam Fripp 8200.00 50
- Alexander Hunold 9000.00 60
- Hermann Baer 10000.00 70
- John Russell 14000.00 80
- Steven King 24000.00 90
- Nancy Greenberg 12000.00 100
- Shelley Higgins 12000.00 110
- 11 rows selected
- /*--------10、最高的部门平均工资是多少。---------*/
- SQL> SELECT MAX(AVGSALARY)
- 2 FROM(SELECT DEPARTMENT_ID,AVG(SALARY) AVGSALARY
- 3 FROM EMPLOYEES
- 4 GROUP BY DEPARTMENT_ID);
- MAX(AVGSALARY)
- --------------
- 21333.33333333
精彩图集
精彩文章