sql - SQL 查询组并获取最新状态
问题描述
我有这个 oracle sql 表:
ID | State | Date
x | A | 18-01-01
x | B | 18-01-02
x | C | 18-01-03
y | D | 18-01-04
y | E | 18-01-05
y | F | 18-01-06
z | G | 18-01-07
z | H | 18-01-08
z | I | NULL
我必须编写一个查询,返回 id 的最后一个状态:
ID | State | Date
X | C | 18-01-03
Y | F | 18-01-06
Z | I | NULL
我能怎么做 ?
谢谢。
解决方案
Select id,state,date
FROM
(
select id,
ROW_NUMBER() OVER(partition by id order by date desc) as state,
date
from mytable
)a
WHERE state=1;
推荐阅读
- ssl - Nginx 使用 http 但不使用 https。返回 ERR_CONNECTION_TIMED_OUT
- networking - 四台主机出现在 netdiscover 上,没有连接任何计算机
- android - BasicNetwork.performRequest - android 6.0.1 中的意外响应代码 400 但在模拟器上没有
- javascript - 我需要在不更改格式的情况下链接嵌套函数的帮助
- java - HashMap求和算法
- .net - 项目构建但 Omnisharp 没有看到 nuget 包并显示错误
- c# - 如何为大型项目创建集成测试
- javascript - Vue v-针对 JSON 文件中每条记录的出现
- swiftui - 为什么@Binding 属性导致每次都没有关联初始化?
- subtitle - 如何将 SRT(基于文本的字幕)转换为 DVB(基于位图的字幕)?