2

我在表 emp 中有 2 列工作和部门。

job                   department
-------------------------------------------
manager              accounting
president            accounting
manager              accounting
clerk                accounting
manager              accounting
manager              accounting
manager              accounting
clerk                accounting
analyst              accounting
security             accounting
security             accounting
clerk                accounting
analyst              accounting
security             accounting

我需要提取如下数据

status       status_numbers        status2           status_numbers2            outstanding                     total
-----------------------------------------------------------------------------------------------------------------
manager             5              manager               14                 total-status_numbers2               14
president           1              president             9                  total-status_numbers2               14 
clerk               3              clerk                 8                  total-status_numbers2               14
analyst             2              analyst               5                  total-status_numbers2               14
security            3              security              3                  total-status_numbers2               14

在 status_numbers2 列中,我们需要按以下方式为 manager o 从 progress_cmc_status_numbers 字段 (14) 中提取经理、总裁、文员、分析师、安全性的数据

总裁、文员、分析师、progress_cmc_status_numbers 字段中的安全的总和 (9)

对于来自 progress_cmc_status_numbers 字段的文员、分析师、安全的文员总和 (8)

对于分析员的分析员总和,来自 progress_cmc_status_numbers 字段的安全性 (5)

来自 progress_cmc_status_numbers 字段的安全总和 (3)

4

1 回答 1

4

尝试这样的事情:

select status ,status_numbers, SUM(status_numbers) OVER (ORDER BY ordr desc ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) status_numbers2
from
(
select "job" status, count(*) status_numbers , decode("job", 'manager', 1, 'president',2, 'clerk', 3,'analyst', 4, 'security', 5) ordr
from emp
group by "job") t

这是一个sqlfiddle

于 2013-04-04T12:57:50.060 回答