我有一个总是插入更改的表。为此,每个插件上都会增加一个版本号,但始终手动将一个版本设置为活动版本。我现在想检索所有版本最高的行没有'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 |
查询的结果应仅返回uid 001,因为最大版本3处于不活动状态。
我认为我需要某种自我加入吗?
谢谢您的帮助!
答案 0 :(得分:1)
您可以使用子查询和内部联接
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 ='-'