有一个软件项目,其中包含一些数据,如下表所示。在此表中,我们有开发人员,他在系统中进行某些更改(管理请求)的日期以及这些日期中每一个日期之间的差额(以天为单位)。
SeqID | developer | MR date | dates diff
--------+-----------+---------------+----------------
1 | Ivy | 01/02/2012 | 0
2 | Ivy | 02/02/2012 | 1
3 | Ivy | 03/02/2012 | 1
4 | Ivy | 10/02/2012 | 7
5 | Ivy | 13/02/2012 | 3
6 | Ivy | 14/02/2012 | 1
1 | Ken | 17/02/2012 | 0
2 | Ken | 20/02/2012 | 3
3 | Ken | 22/02/2012 | 2
4 | Ken | 23/02/2012 | 1
5 | Ken | 24/02/2012 | 1
6 | Ken | 25/02/2012 | 1
7 | Ken | 01/03/2012 | 4
8 | Ken | 05/03/2012 | 4
1 | Bob | 19/02/2012 | 0
2 | Bob | 23/02/2012 | 4
3 | Bob | 01/03/2012 | 6
4 | Bob | 02/03/2012 | 1
5 | Bob | 03/03/2012 | 1
6 | Bob | 05/03/2012 | 2
我想知道最长的条纹是什么(最长相差1天后进行的连续更改)。这与每个开发人员在github统计数据中提供的内容非常相似。因此,结果表如下所示:
developer | longest streak
------------+------------------------
Ivy | 2
Ken | 3
Bob | 2
我尝试的解决方案是计算由开发人员分组的diff date = 1分组的行数。但这不会返回想要的结果。
根据结果表,计数应如下所示:Dev = Ivy; 最长连胜= 2012年1月2日至2012年3月2日= 2天,等等
。你们中的一些人可以在这件事上为我提供帮助吗?谢谢,
这样做有一个窍门。如果您从日期中减去一个递增的数字序列,那么对于连续的日期,它们将是恒定的。然后,我们可以使用它为每个开发人员定义组。
select developer, max(numdays) as maxseq
from (select developer, grp, min(MRDate) as MR_start, max(MRDate) as MR_end,
count(distinct MRDate) as numdays
from (select t.*,
(MRDate - dense_rank() over (partition by developer order by date)) as grp
from t
) t
group by developer, grp
) t
group by developer;
如果您知道每个日期最多有一条记录,则可以使用row_number()
代替dense_rank()
和count(*)
代替count(distinct MRDate)
。
问题内容: 上面是我的查询,我想获取一个人每天的记录。该记录应具有当天的最小日期时间。我需要该日期时间的完整记录 我的预期输出在这里 我尝试使用 但是对于“ t1”,我得到id = 1和第一行的输入日期。 请帮帮我。如果重复,则提供链接。 问题答案: 演示
我在一个XML文件中有格式为(Year.Month.Day)的时间戳。 我需要找出以天为单位的两个时间戳之间的区别。 命名空间“std::chrono”没有成员“year”
当我想计算两个日期之间的天数跨度时,我在Java中对日期管理的理解有误。 假设我们有两个不同的日期: 日期1: 1986-01-24 日期2: 2017-04-20 案例1:我有一段使用日期的代码: 产出1: 案例2:使用日历的代码片段: 产出2: 案例3:在Excel中使用电子表格的示例: 当我使用MS Excel来获取这个跨度时,只是引入给定的日期并简单地进行细分,输出如下: 问题 为什么Ja
问题内容: 当我运行以下查询 我收到一个错误“ ” 问题答案: Concat仅接受两个参数。请参阅:http : //docs.oracle.com/cd/B19306_01/server.102/b14200/functions026.htm 使用串联运算符:
SQL:我有一个在StartTime和EndTime列中包含员工工作时间的表。我想计算每个员工每天的工作时间,即使员工在一天开始轮班,第二天结束。
因此,我在使用多个临时表生成查询时遇到了一些问题。 首先,我创建了临时表。 然后我写下我的查询如下。这似乎是一个简单的查询。然而,我得到了错误“ORA-00918:列定义不明确”。我不知道是否可以连接这两个临时表,尤其是它们没有任何关系。我只想查询唯一id在DIDV表中的位置,以及标题和注释列不包含KEW字段的位置。 感谢您对理解这一点的任何帮助。 如果需要任何澄清,请告诉我。