我希望从满足以下约束的表中选择以下行:
我一直在搞弄自己的联接(如果在子查询中idb = x,请选择最大版本),但是没有运气
例如:
idb = x 如果特定ida的va是该ida的最大va,而idb是x,则将其包括在内
ida | idb | va
--------------------------------
abc x 1
abc y 2
abc x 3
def x 1
xyz x 1
xyz x 2
xyz z 3
结果:
ida | idb | va
--------------------------------
abc x 3
def x 1
对于上一个示例,
包含abc是因为va(3)的最高版本位于idb = x
的行中 包含def是因为va(1)的最高版本位于idb = x
的行中xyz不包括在内,因为xyz的最高版本(va = 3)的值为idb = z
答案 0 :(得分:2)
如果我的理解正确,您希望其中给定extension Array: Decodable where Element: Decodable {}
的最高版本的ida
值为idb
的行。
如果是这样:
'x'
答案 1 :(得分:0)
最简单的代码是:
select t.ida, t.idb, t.va
from your_table t
where t.idb = 'x'
and t.va = (select max(sub_qry.va)
from your_table sub_qry
where sub_qry.ida = t.ida)