由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Database版 - 请问出这个题并给这样answer key的人是什么样的水准?
相关主题
初级问题深夜诚心再问2位前辈(Beijin & Coolbid) extra Q
请教关于大数据表的设计SQL question
Another oneembedded sql 问题
Oracle char AND varchar2 datatype question.A wield thing in Oracle DB
菜鸟急问ORACLE里FUNCTION返回ref cursor的问题Oracle急问
怎么去除duplicatesOne sql question help!
请教: SQL SUMA question of filling in missing value in SQL
oracle pl sql recursive function问个关于openquery的问题
相关话题的讨论汇总
话题: emp话题: select话题: deptno话题: where话题: sal
进入Database版参与讨论
1 (共1页)
m******u
发帖数: 12400
1
个人觉得这个题目出的不好(比如第二题),answer key 也不算怎样,第一题就可见
一斑。
。。。。。。。。。。。。。。
Table 1 : DEPT
DEPTNO (NOT NULL , NUMBER(2)), DNAME (VARCHAR2(14)),
LOC (VARCHAR2(13)
Table 2 : EMP
EMPNO (NOT NULL , NUMBER(4)), ENAME (VARCHAR2(10)),
JOB (VARCHAR2(9)), MGR (NUMBER(4)), HIREDATE (DATE),
SAL (NUMBER(7,2)), COMM (NUMBER(7,2)), DEPTNO (NUMBER(2))
MGR is the empno of the employee whom the employee reports to. DEPTNO is a
foreign key.
QUERIES
1. List all the employees who have at least one person reporting to them.
2. List the employee details if and only if more than 10 employees are
present in department no 10.
3. List the name of the employees with their immediate higher authority.
4. List all the employees who do not manage any one.
5. List the employee details whose salary is greater than the lowest salary
of an employee belonging to deptno 20.
6. List the details of the employee earning more than the highest paid
manager.
7. List the highest salary paid for each job.
8. Find the most recently hired employee in each department.
9. In which year did most people join the company? Display the year and the
number of employees.
10. Which department has the highest annual remuneration bill?
11. Write a query to display a ‘*’ against the row of the most recently
hired employee.
12. Write a correlated sub-query to list out the employees who earn more
than the average salary of their department.
13. Find the nth maximum salary.
14. Select the duplicate records (Records, which are inserted, that already
exist) in the EMP table.
15. Write a query to list the length of service of the employees (of the
form n years and m months).
KEYS:
1. SELECT DISTINCT(A.ENAME) FROM EMP A, EMP B WHERE A.EMPNO = B.MGR; or
SELECT ENAME FROM EMP WHERE EMPNO IN (SELECT MGR FROM EMP);
2. SELECT * FROM EMP WHERE DEPTNO IN (SELECT DEPTNO FROM EMP GROUP BY DEPTNO
HAVING COUNT(EMPNO)>10 AND DEPTNO=10);
3. SELECT A.ENAME "EMPLOYEE", B.ENAME "REPORTS TO" FROM EMP A, EMP B WHERE A
.MGR=B.EMPNO;
4. SELECT * FROM EMP WHERE EMPNO IN ( SELECT EMPNO FROM EMP MINUS SELECT MGR
FROM EMP);
5. SELECT * FROM EMP WHERE SAL > ( SELECT MIN(SAL) FROM EMP GROUP BY DEPTNO
HAVING DEPTNO=20);
6. SELECT * FROM EMP WHERE SAL > ( SELECT MAX(SAL) FROM EMP GROUP BY JOB
HAVING JOB = 'MANAGER' );
7. SELECT JOB, MAX(SAL) FROM EMP GROUP BY JOB;
8. SELECT * FROM EMP WHERE (DEPTNO, HIREDATE) IN (SELECT DEPTNO, MAX(
HIREDATE) FROM EMP GROUP BY DEPTNO);
9. SELECT TO_CHAR(HIREDATE,'YYYY') "YEAR", COUNT(EMPNO) "NO. OF EMPLOYEES"
FROM EMP GROUP BY TO_CHAR(HIREDATE,'YYYY') HAVING COUNT(EMPNO) = (SELECT MAX
(COUNT(EMPNO)) FROM EMP GROUP BY TO_CHAR(HIREDATE,'YYYY'));
10. SELECT DEPTNO, LPAD(SUM(12*(SAL+NVL(COMM,0))),15) "COMPENSATION" FROM
EMP GROUP BY DEPTNO HAVING SUM( 12*(SAL+NVL(COMM,0))) = (SELECT MAX(SUM(12*(
SAL+NVL(COMM,0)))) FROM EMP GROUP BY DEPTNO);
11. SELECT ENAME, HIREDATE, LPAD('*',8) "RECENTLY HIRED" FROM EMP WHERE
HIREDATE = (SELECT MAX(HIREDATE) FROM EMP) UNION SELECT ENAME NAME, HIREDATE
, LPAD(' ',15) "RECENTLY HIRED" FROM EMP WHERE HIREDATE != (SELECT MAX(
HIREDATE) FROM EMP);
12. SELECT ENAME,SAL FROM EMP E WHERE SAL > (SELECT AVG(SAL) FROM EMP F
WHERE E.DEPTNO = F.DEPTNO);
13. SELECT ENAME, SAL FROM EMP A WHERE &N = (SELECT COUNT (DISTINCT(SAL))
FROM EMP B WHERE A.SAL<=B.SAL);
14. SELECT * FROM EMP A WHERE A.EMPNO IN (SELECT EMPNO FROM EMP GROUP BY
EMPNO HAVING COUNT(EMPNO)>1) AND A.ROWID!=MIN (ROWID));
15. SELECT ENAME "EMPLOYEE",TO_CHAR(TRUNC(MONTHS_BETWEEN(SYSDATE,HIREDATE)/
12))||' YEARS '|| TO_CHAR(TRUNC(MOD(MONTHS_BETWEEN (SYSDATE, HIREDATE),12)))
||' MONTHS ' "LENGTH OF SERVICE" FROM EMP;
x****e
发帖数: 1773
2
一眼的*. 这个很不好。

【在 m******u 的大作中提到】
: 个人觉得这个题目出的不好(比如第二题),answer key 也不算怎样,第一题就可见
: 一斑。
: 。。。。。。。。。。。。。。
: Table 1 : DEPT
: DEPTNO (NOT NULL , NUMBER(2)), DNAME (VARCHAR2(14)),
: LOC (VARCHAR2(13)
: Table 2 : EMP
: EMPNO (NOT NULL , NUMBER(4)), ENAME (VARCHAR2(10)),
: JOB (VARCHAR2(9)), MGR (NUMBER(4)), HIREDATE (DATE),
: SAL (NUMBER(7,2)), COMM (NUMBER(7,2)), DEPTNO (NUMBER(2))

1 (共1页)
进入Database版参与讨论
相关主题
问个关于openquery的问题菜鸟急问ORACLE里FUNCTION返回ref cursor的问题
猪一样的队友怎么去除duplicates
新手学数据库一个简单题求助请教: SQL SUM
No Need for trigger Re: oracle trigger questionoracle pl sql recursive function
初级问题深夜诚心再问2位前辈(Beijin & Coolbid) extra Q
请教关于大数据表的设计SQL question
Another oneembedded sql 问题
Oracle char AND varchar2 datatype question.A wield thing in Oracle DB
相关话题的讨论汇总
话题: emp话题: select话题: deptno话题: where话题: sal