sql - 选择同一天的最后一个 ID 值
问题描述
我有一个示例表,如下所示
ID | 日期 | 信息 |
---|---|---|
1 | 15.02.2020 | 一个 |
2 | 15.02.2020 | b |
1 | 15.02.2020 | C |
1 | 15.02.2020 | d |
3 | 15.02.2020 | e |
1 | 16.02.2020 | F |
3 | 16.02.2020 | G |
3 | 16.02.2020 | H |
我需要创建一个选择语句,在同一天向我显示每个 ID 的最后一行。正如你在下面看到的。
ID | 日期 | 信息 |
---|---|---|
2 | 15.02.2020 | b |
1 | 15.02.2020 | d |
3 | 15.02.2020 | e |
1 | 16.02.2020 | F |
3 | 16.02.2020 | H |
如何在 Oracle SQL 中管理它?
解决方案
一种方法使用相关子查询:
select t.*
from t
where t.id = (select max(t2.id)
from t t2
where t2.info = t.info and t2.date = t.date
);
您还可以使用窗口函数:
select t.*
from (select t.*,
row_number() over (partition by info, date order by id desc) as seqnum
from t
) t
where seqnum = 1;
推荐阅读
- c - 以链表的形式构建字典并获得分段错误(核心转储)错误
- java - 如何使用 Java 对 AWS S3 开发工具包的 getObject 方法进行单元测试?
- c++ - 为什么我的 C++ 代码中出现“未声明的标识符”错误?
- c++ - 我的 Boyer-Moore 算法只搜索我的文本文件中的前 3000 个字符
- javascript - 电子,最小化屏幕
- javascript - 一旦我设置了 screenProps 的 setState,如何避免在 tabNavigator 中重新渲染屏幕?
- java - Camel SEDA 如果队列已满,则关闭消息
- c - 禁止浮动到双重转换
- r - R:当max <= min时,如何替换(切换)数据框中连续的最大值和最小值?
- c++ - 私有设置和类 OMP、随机 C++。结果理解有问题