Mysql 如何从同一列中获取多条最大记录?

Mysql 如何从同一列中获取多条最大记录?,mysql,group-by,subquery,fetch,Mysql,Group By,Subquery,Fetch,我正在使用mysql数据库 sbs=>从docbodyversion中选择* bodyid | internaldocid | versionid --------+---------------+----------- 1121 | 1245 | 1 1122 | 1245 | 2 1124 | 1246 | 1 1125 | 1246 |

我正在使用mysql数据库

sbs=>从docbodyversion中选择*

 bodyid | internaldocid | versionid
--------+---------------+-----------
   1121 |          1245 |         1
   1122 |          1245 |         2
   1124 |          1246 |         1
   1125 |          1246 |         2
   1126 |          1246 |         3
我想写这样一个查询,这样o/p将是这样的-:

 bodyid | internaldocid | versionid
--------+---------------+-----------
   1122 |          1245 |         2
   1126 |          1246 |         3
所以我只想要每条记录的最大版本ID

有人能给我指路吗?

试试:

SELECT MAX(bodyId) AS BodyID,internaldocid, MAX(versionid) AS VersionID 
FROM docbodyversion GROUP BY internaldocid
试试这个:

select d.*
from docbodyversion d
join
    (select internaldocid,MAX(versionid) as versionid
     from docbodyversion
     group by internaldocid)a
on a.versionid=d.versionid
and a.internaldocid=d.internaldocid
希望这有帮助


请在标记中输入数据库的名称和版本。

SELECT DISTINCT BT.BODY_ID, A.INTERNAL_DOC_ID, A.VERSION_ID
  FROM SO_BUFFER_TABLE_16 BT,
       (SELECT DISTINCT BT.INTERNAL_DOC_ID, MAX(BT.VERSION_ID) VERSION_ID
          FROM SO_BUFFER_TABLE_16 BT
         GROUP BY BT.INTERNAL_DOC_ID) A
 WHERE BT.VERSION_ID = A.VERSION_ID
   AND BT.INTERNAL_DOC_ID = A.INTERNAL_DOC_ID