【问题标题】:each item wise count with conditions每个项目明智地计算条件
【发布时间】:2013-04-04 12:24:02
【问题描述】:

我在表 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 列中,我们需要按以下方式提取数据 对于经理 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)

【问题讨论】:

    标签: oracle


    【解决方案1】:

    试试这样的:

    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
    

    Here is a sqlfiddle

    【讨论】:

    • 感谢您的查询,但我需要为经理(经理+总裁+文员+分析师+安全)获取计数 14,即 5+1+3+2+3=14
    • 非常感谢您宝贵的cmets
    • 很高兴能为您提供帮助。如果你觉得这个答案有帮助,你可以考虑接受它stackoverflow.com/faq#howtoask
    猜你喜欢
    • 2018-10-26
    • 1970-01-01
    • 2019-07-28
    • 1970-01-01
    • 1970-01-01
    • 2020-04-17
    • 1970-01-01
    • 2011-10-16
    • 2015-03-08
    相关资源
    最近更新 更多