【发布时间】:2019-04-29 14:59:30
【问题描述】:
我四处寻找并没有找到解决方案。 (有用的阅读SQL to find time elapsed from multiple overlapping intervals)
这是我的数据:规则是
"对于每个国家,依次选择Date_ID,时间间隔等于或大于5个月"
我的工作环境是 ORACLE SQL。
非常感谢。
Country Date_ID
----------------------
USA 199003
USA 200004
USA 200005
USA 200009
USA 200010
UK 199307
UK 199308
UK 199408
因此输出应该是
Country Date_ID
--------------------
USA 199003
USA 200004
USA 200009
UK 199307
UK 199408
【问题讨论】:
-
您好,Jarlh,感谢您的评论。我不确定我的问题是否令人困惑。实际上我正在尝试选择“按顺序”的日期。以美国为例,1990/03 和 2000/04 的时间间隔大于 5 个月。但是,2000/05 到 2000/04 不在 5 个月内,因此没有选择 2000/05。
-
您的 Oracle 版本是多少?这个问题在 Oracle 12.1 及更高版本中很容易解决,使用
match_recognize;在旧版本中更难。 -
另外,
DATE_ID的数据类型是什么?它们是 字符串 还是属于正确的数据类型,即date? -
@mathguy,你是对的......
-
@mathguy 我的预言机是 11.2 DATE_ID 是 NUMBER(6)。如果您知道此版本中的一些解决方案,那就太好了。如果没有,非常感谢 Oracle 12.1 或 Mysql.etc 中的任何建议/文档。
标签: sql oracle time aggregation