选择数据库,获取列的所有最大值

时间:2013-05-13 21:36:37

标签: php mysql sql

我有下表:

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

2 个答案:

答案 0 :(得分:4)

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

Fiddle

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

答案 1 :(得分: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;