我有两张桌子A和B:
答:
id v1
-----
1 12
2 9 (added after edit)
2 11
3 27
3 23
B:
id v2
-----
1 13
3 10
2 10
3 28
我想从B中选择每一行,其中v2在所有v2中最大,v1对应于两个表中的id。 (编辑:我的意思是:向我显示B中的每一行,其中包括两个表中该id的单个最大值)。
结果应如下所示:
id greatest (v1,v2)
--------------------
1 13
3 28
到目前为止,我能够通过以下两个表格展示最佳:
select distinct a.id, greatest(v1,v2) from a join b on a.id=b.id group by a.id;
导致:
id greatest (v1,v2)
--------------------
1 13
2 11
3 28
关于如何仅从B展示最大(v1,v2)的任何想法?
答案 0 :(得分:0)
编辑:
SELECT b.id
, MAX(v2) v2
FROM b
JOIN
( SELECT id
, MAX(v1) v1
FROM a
GROUP
BY id
) x
ON x.id = b.id
AND x.v1 <= b.v2
GROUP
BY id;