获取具有最大版本值但不活动的行
Get row which has max version value but isn't active
我有一个 table 始终插入更改的地方。为此,每次插入都会增加一个版本号,但总是手动将一个版本设置为活动版本。我现在想检索最高版本的行没有 'active'=true.
的所有行
| UID | Version | Active | Name |
----------------------------------
| 001 | 1 | _ | Peter |
| 001 | 2 | X | Paul |
| 001 | 3 | _ | Petra |
| 002 | 1 | _ | Walt |
| 002 | 2 | X | Jan |
| 003 | 1 | X | Brad |
查询结果应该只有 return uid 001,因为最大版本 3 未激活。
我假设我需要某种自连接?
感谢您对此的任何帮助!
您可以使用子查询和内连接
select uid, version
from my_table m
inner join (
select uid, max(version) max_version
from my_table
group by uid
) t ON t.uid = m.uid and t.max_version = m.version
where active ='-'
我有一个 table 始终插入更改的地方。为此,每次插入都会增加一个版本号,但总是手动将一个版本设置为活动版本。我现在想检索最高版本的行没有 'active'=true.
的所有行| UID | Version | Active | Name |
----------------------------------
| 001 | 1 | _ | Peter |
| 001 | 2 | X | Paul |
| 001 | 3 | _ | Petra |
| 002 | 1 | _ | Walt |
| 002 | 2 | X | Jan |
| 003 | 1 | X | Brad |
查询结果应该只有 return uid 001,因为最大版本 3 未激活。
我假设我需要某种自连接?
感谢您对此的任何帮助!
您可以使用子查询和内连接
select uid, version
from my_table m
inner join (
select uid, max(version) max_version
from my_table
group by uid
) t ON t.uid = m.uid and t.max_version = m.version
where active ='-'