0

我有下表:

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
4

2 回答 2

4

您需要确定子查询中的最大值,然后加入常量元素

小提琴

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
于 2013-05-13T21:49:33.323 回答
0

正如 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;
于 2013-05-13T21:54:32.297 回答