Sql 无法根据作业获取所需的输出
我有一张emp表,上面有所有常规的14行。 我想写一个查询来扫描表并按以下方式返回 这意味着它将根据作业返回输出。若它第一次看到总统,它返回该行,然后扫描到下一个作业,它看到经理并返回该行,而不返回任何其他经理,以此类推。因此,对于每个新作业,它都会返回该行并传递到下一个新作业。谢谢Sql 无法根据作业获取所需的输出,sql,oracle,Sql,Oracle,我有一张emp表,上面有所有常规的14行。 我想写一个查询来扫描表并按以下方式返回 这意味着它将根据作业返回输出。若它第一次看到总统,它返回该行,然后扫描到下一个作业,它看到经理并返回该行,而不返回任何其他经理,以此类推。因此,对于每个新作业,它都会返回该行并传递到下一个新作业。谢谢 7839 KING PRESIDENT 17-NOV-81 5000 10 7698 BLAKE MANAGER 7839 01-MAY-81 2850
7839 KING PRESIDENT 17-NOV-81 5000 10
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7788 SCOTT ANALYST 7566 19-APR-87 3000 20
7369 SMITH CLERK 7902 17-DEC-80 800 20
请帮忙
谢谢这将返回每个作业的第一人称(按姓氏字母顺序排列):
SELECT EMPLOYEE_ID,
LAST_NAME,
JOB_TITLE,
MANAGER_ID,
HIRE_DATE,
SALARY,
DEPARTMENT_ID
FROM (
SELECT e.EMPLOYEE_ID,
e.LAST_NAME,
j.JOB_TITLE,
e.MANAGER_ID,
e.HIRE_DATE,
e.SALARY,
e.DEPARTMENT_ID,
ROW_NUMBER() OVER ( PARTITION BY e.JOB_ID ORDER BY e.LAST_NAME ) AS RN
FROM HR.EMPLOYEES e
INNER JOIN
HR.JOBS j
ON ( e.JOB_ID = j.JOB_ID )
)
WHERE RN = 1;
输出:
(我的EMPLOYEES
表有109行……不过有19种不同的工作)
是否仅返回具有唯一作业(标题)的行?是请否最大值或最小值仅返回存储在emp表中任何orderROW\u NUMBER()中的新作业标题遇到的第一行(按e.job\u title顺序按e.LAST\u NAME划分)正如RN----按职务划分将help@Aishu
JOB\u TITLE
不在EMPLOYEES
表中。我选择按JOB\u ID
as进行分区,除非有两个作业具有相同的标题和不同的ID(默认情况下不是这样),否则按JOB\u ID
进行分区将执行相同的操作,并且可能允许使用索引(该索引是JOB\u ID
的主键,但JOB\u title
没有)。如果你愿意的话,你可以按JOB\u TITLE
进行分区,但我有理由考虑而没有考虑。
EMPLOYEE_ID LAST_NAME JOB_TITLE MANAGER_ID HIRE_DATE SALARY DEPARTMENT_ID
----------- ------------------------- ----------------------------------- ---------- --------- ---------- -------------
206 Gietz Public Accountant 205 07-JUN-02 8300 110
205 Higgins Accounting Manager 101 07-JUN-02 12008 110
200 Whalen Administration Assistant 101 17-SEP-03 4400 10
100 King President 17-JUN-03 24000 90
102 De Haan Administration Vice President 100 13-JAN-01 17000 90
110 Chen Accountant 108 28-SEP-05 8200 100
108 Greenberg Finance Manager 101 17-AUG-02 12008 100
203 Mavris Human Resources Representative 101 07-JUN-02 6500 40
105 Austin Programmer 103 25-JUN-05 4800 60
201 Hartstein Marketing Manager 100 17-FEB-04 13000 20
202 Fay Marketing Representative 201 17-AUG-05 6000 20
204 Baer Public Relations Representative 101 07-JUN-02 10000 70
116 Baida Purchasing Clerk 114 24-DEC-05 2900 30
114 Raphaely Purchasing Manager 100 07-DEC-02 11000 30
148 Cambrault Sales Manager 100 15-OCT-07 11000 80
174 Abel Sales Representative 149 11-MAY-04 11000 80
192 Bell Shipping Clerk 123 04-FEB-04 4000 50
130 Atkinson Stock Clerk 121 30-OCT-05 2800 50
121 Fripp Stock Manager 100 10-APR-05 8200 50