首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >案例陈述- Oracle诉11

案例陈述- Oracle诉11
EN

Stack Overflow用户
提问于 2016-07-22 18:27:29
回答 1查看 59关注 0票数 0

对于Oracle来说是新的--我想创建一个Case语句或某种类型的指示符,它可以识别客户机何时被认为是“参与”的。我有以下数据。我想每个月都能数数。

计算月份的所有成员,但也为仍被视为已打开的成员进行累积。我不确定这是否是最好的平台,但我想我会问。我可以在SQL之外求和。

代码语言:javascript
运行
复制
201607 = 4 (Memberid: 1-3 & 5)
201606 = 2 (Memberid: 4 & 5)
Total records below = 5

Start_Year_Month         EndDate       ID     Status
    201607                             1       OPEN
    201607                             2       OPEN
    201607                 201607      3       CLOSED
    201606                 201606      4       CLOSED
    201606                             5       OPEN
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-22 18:37:26

其中一种方法相对简单:

代码语言:javascript
运行
复制
select m.mon, count(t.id)
from (select distinct start_year_month as mon from t) m join
     t
     on m.mon >= t.start_year_month and 
        (m.mon <= t.enddate or t.enddate is null)
group by m.mon;

随着月数的增加,这将不会有很好的性能(除非您的数据非常小)。一个更有表现力的解决方案要复杂一些。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38533127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档