我正在尝试解决一个问题,该问题是如何在一系列记录中查找连续年份的最大数量。在以下示例中:
身份证年
1 1993年
1994年1月1日
1995年1月1日
1995年1月1日
1 2001
1 2002
1993年2月2日
1995年2月2日
1996年2月2日
1996年2月2日
1998年2月2日
1999年2月2日
2 2000
2001年2月2日
2001年2月2日
我的结果集应该看起来像
身份证数
1 3
2 4
我必须用oracle SQL编写代码。
这将产生您想要的结果:
select
id,
ayear,
byear,
yeardiff
from
(
select
a.id,
a.year ayear,
b.year byear,
(b.year - a.year)+1 yeardiff,
dense_rank() over (partition by a.id order by (b.year - a.year) desc) rank
from
years a
join years b on a.id = b.id
and b.year > a.year
where
b.year - a.year =
(select count(*)-1
from years a1
where a.id = a1.id
and a1.year between a.year and b.year)
)
where
rank = 1
编辑 已更新,以显示最长延伸的开始/结束年份。
SQLFiddle
问题内容: 我有以下数据按player_id和match_date排序。我想找出连续运行次数最多的记录组(从2014-04-03到2014-04-12连续3次运行4次) 我想出了以下SQL: 但这 延续 了之前连续运行的排名(由于玩家1已经出现3次,因此在2014-04-19进行的4次针对Player 1的排名预计为1,但排名为4)。同样,在2014-04-19上,玩家2的23奔跑有望获得等级1,
本文向大家介绍在Python中的每个子列表中查找最大值,包括了在Python中的每个子列表中查找最大值的使用技巧和注意事项,需要的朋友参考一下 我们得到一个列表列表。在内部列表或子列表中,我们需要在每个列表中找到最大值。 与最大和 我们设计一个带in条件的for循环,并应用max函数来获取每个子列表中的最大值。 示例 输出结果 运行上面的代码给我们以下结果- 带映射和最大 在遍历子列表时,我们继续
给定一个向量和一个有序向量,我想要一个向量,其中 ] 等于 中最小元素的索引,以便
问题内容: 我需要查询方面的帮助。 我有这个简单的表: 看起来像这样: 我想为给定的readVal获得最后的连续行: 在上面的示例中将是: id:3 for readVal = 2 id:8 for readVal = 3 我尝试了以下查询: 只要该系列中没有缺失的ID,它就可以工作。在上面的示例中,编号4缺失,查询将不会返回预期的结果。 谢谢! 问题答案: 返回: 对于还需要最后一行的情况: 返
问题内容: 在下面的表格中,我需要获取状态日期等于2的最大日期的行 我需要使用此请求获取具有最大日期和按REMUN_ID分组的行 结果 : 我需要调整请求以从此结果中仅获取statut = 2的行 我的目的是获取以下结果,这是第一个查询的子查询,以仅获取具有状态2的子查询。 PS:如果我使用了将从中得到这些结果的子句: 那不是我想要的。 有什么建议?谢谢 问题答案: SQLFiddle:http
你是一个电视游戏节目的参与者,这给了你赢得奖金的机会。在游戏中,你会看到一系列框,每个框都包含一个允许你看到的正整数值。你有机会选择任何数量的盒子。您的总奖金是您选择包含的所有盒子的总和。这个游戏只有一个限制:如果你选择了两个连续的盒子,你不允许在总数中添加任何后续的盒子,而你的奖品是截至该点的累计金额。你的目标是最大化你的奖金。 给定一个正整数数组,代表游戏中呈现给你的每个盒子的值,返回你能赢得