sql - 如何找到列中相关日期之间的最大范围?
问题描述
我有一个数据库,其中一列中有乐队,另一列有专辑的发行日期,我如何根据发行日期之间的差异找到最古老的乐队?即最老的乐队不是 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
解决方案
甲骨文 12c+
select band from your_table order by rel_date fetch first 1 rows only;
如果您想包含关系,请将其更改with ties
为only
编辑
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
推荐阅读
- javascript - 将变量推送到 GoogleApps 脚本中的下拉列表
- android - 视频聊天 IOS/Android Webrtc。GoogleWebRTC 考试
- java - java 8日期时间的单一模式
- c - 查找素数并将其分配给数组
- java - 使用休眠执行程序
- android - 读取 DropBox 文本文件
- javascript - 使用 JavaScript 在 html5 自定义播放器中加载音频时加载/缓冲文本
- google-chrome-devtools - 如何在 JS 源代码中显示行级分析?
- django - Django 管理员自定义操作请求
- laravel - Laravel 文件管理器独立 iframe 输入