Spa*_*ags 4 sql oracle count oracle-apex
我需要在Oracle APEX中生成一个类似于以下示例的报告:
PROJECT OPEN_ISSUE_COUNT CLOSED_ISSUE_COUNT
W-1 3 1
X-2 1 2
Y-3 5 3
Z-4 2 1
Run Code Online (Sandbox Code Playgroud)
凡OPEN_ISSUE_COUNT
和CLOSED_ISSUE_COUNT
由生成SQL COUNT
的语句.被查询的表看起来像这样:
ISSUE_# ISSUE_STATUS ASSOCIATED_PROJECT
1A OPEN W-1
1B OPEN W-1
1C OPEN W-1
2A CLOSED W-1
2B OPEN X-2
2C CLOSED X-2
3A CLOSED X-2
etc...
Run Code Online (Sandbox Code Playgroud)
因此,在一个查询我需要计数OPEN_ISSUE_COUNT
并CLOSED_ISSUE_COUNT
在那里ISSUS_STATUS = 'OPEN'
和ISSUS_STATUS = 'CLOSED'
分别GROUP BY
ASSOCIATED_PROJECT
.
那有意义吗?显然,我可以轻松地针对这两种状态中的一种进行此操作,但是无法为我在此描述的内容提出任何可行的解决方案.我在这里和其他地方看过一些东西并没有看到类似的东西.让我知道你们的想法.谢谢!
小智 8
由于count()
只计算非空值,这应该工作:
select associated_project as project,
count(case when issue_status='OPEN' then 1 else null end) as open_issue_count,
count(case when issue_status='CLOSED' then 1 else null end) as closed_issue_count
from table
group by associated_project;
Run Code Online (Sandbox Code Playgroud)
当然,这假设唯一有效的值issue_status
是'OPEN'
AND 'CLOSED'
.如果不是这种情况 - 并且如果您希望计算其他状态 - 则相应地调整查询.