当每个研究可以多次打开和关闭时,如何为 SQL 中的研究分配活动或关闭标签?

问题描述 投票:0回答:1

我有以下数据:

学习ID 有效Dt 状态
174739 2000年1月13日 开放应计
174739 2/15/2002 停止累积
174739 2002 年 5 月 22 日 暂停
174739 2012 年 8 月 3 日 开放应计
174739 2013 年 5 月 21 日 停止累积
174739 2022 年 4 月 1 日 已关闭

一项研究在给定日期可以有多种状态。它可以多次打开和关闭应计(科目注册)。我试图弄清楚如何将研究归类为“活跃”或“完整”。如果一项研究尚未处于“已关闭”状态,则意味着它仍然是一项“活跃”研究。我不知道逻辑会是什么样子。

“已关闭应计”并不意味着研究已完成,只有“已关闭”状态才表示已完成。

我认为某个地方需要有一个固定的 LOD 计算,但我迷路了。

oracle-sqldeveloper
1个回答
0
投票

如果一项研究尚未处于“已关闭”状态,则意味着它仍然是一项“活跃”研究。

COUNT
'CLOSED'
状态数量:

  • 如果没有
    'CLOSED'
    状态,则为
    'active'
  • 如果有
    'CLOSED'
    状态则为
    'inactive'

您可以使用条件聚合和

CASE
表达式来做到这一点:

SELECT study_id,
       CASE COUNT(CASE status WHEN 'CLOSED' THEN 1 END)
       WHEN 0
       THEN 'active'
       ELSE 'inactive'
       END AS is_active
FROM   table_name
GROUP BY study_id
© www.soinside.com 2019 - 2024. All rights reserved.