【发布时间】:2013-09-19 07:52:51
【问题描述】:
我正在尝试找出一种方法来识别满足某些条件的结果“运行”(按顺序连续行)。目前,我正在订购一个结果集,并通过眼睛扫描特定模式。这是一个例子:
SELECT the_date, name
FROM orders
WHERE
the_date BETWEEN
to_date('2013-09-18',..) AND
to_date('2013-09-22', ..)
ORDER BY the_date
--------------------------------------
the_date | name
--------------------------------------
2013-09-18 00:00:01 | John
--------------------------------------
2013-09-19 00:00:01 | James
--------------------------------------
2013-09-20 00:00:01 | John
--------------------------------------
2013-09-20 00:00:02 | John
--------------------------------------
2013-09-20 00:00:03 | John
--------------------------------------
2013-09-20 00:00:04 | John
--------------------------------------
2013-09-21 16:00:01 | Jennifer
--------------------------------------
我想从这个结果集中提取出在2013-09-20 上归属于John 的所有行。一般来说,我正在寻找的是来自同一 name 的一系列结果,连续 >= 3。我使用的是 Oracle 11,但我很想知道这是否可以通过严格的 SQL 来实现,或者如果必须使用某种分析函数。
【问题讨论】:
-
能否请您发布预期的输出?跑是什么意思?
-
@realspirituals 我解释了预期的输出以及结果“运行”的含义。不清楚吗?
-
查看我的帖子并确认您要查找的内容...
标签: sql oracle gaps-and-islands