首页 > 解决方案 > 如何找到列中相关日期之间的最大范围?

问题描述

我有一个数据库,其中一列中有乐队,另一列有专辑的发行日期,我如何根据发行日期之间的差异找到最古老的乐队?即最老的乐队不是 Band1,因为他们在 1968 年首次发行专辑,用我的方法 Band1 只有 7 岁(或活跃 7 年可能会更好),而 Band2 是 26 岁(活跃年),因为 2001 - 1975 = 26。

例如:

乐队......Rel_date

乐队 1....12/12/68

乐队 1....08/05/75

乐队 2....09/02/75

乐队 2....05/05/99

乐队 2....03/05/01

标签: sqldatabaseoracletop-n

解决方案


甲骨文 12c+

select band from your_table order by  rel_date fetch first 1 rows only; 

如果您想包含关系,请将其更改with tiesonly

编辑

select   band  from t 
group by band order by max(rel_date) - min(rel_date) desc fetch first 1 rows only;

编辑2

对于 12c 之前的 Oracle 版本:

select * from
(
    select   band  from t 
    group by band order by max(rel_date) - min(rel_date) desc
) where rownum = 1

推荐阅读