我有下表:
id | value | data | v
1 | val1 | dat1 | 1
2 | val1 | dat2 | 2
3 | val1 | dat3 | 3
4 | val2 | dat4 | 1
我所做的就是抓住data
,每一个value
,都有更高的v
。不是我的意思..
我想要的 Sql 输出:
id | value | data | v
3 | val1 | dat3 | 3
4 | val2 | dat4 | 1
您需要确定子查询中的最大值,然后加入常量元素
select *
from
Table1
join
(select max(v) MAXV, value from Table1 group by value) T
on T.MAXV = Table1.v and T.value=Table1.value
正如 gillyspy 已经评论的那样,您需要的是一个返回正确值的子查询。检查此代码:
SELECT id, table1.value, data, v
FROM Table1
JOIN (SELECT MAX(v) MAXV, value
FROM Table1
GROUP BY value
) T ON T.MAXV = Table1.v
AND T.value = Table1.value;