我正在尝试创建一个查询以返回具有最大版本的文件,与服务器的值无关。我怎么能那样做?
实际表格数据:
server filename v4 date
local code1.zip 41 0000-00-00
remote code1.zip 39 0000-00-00
local code1.zip 28 0000-00-00
remote code1.zip 21 0000-00-00
local code1.zip 32 0000-00-00
remote code1.zip 27 0000-00-00
查询:
SELECT
server,
filename,
max(v4) as v4,
date
FROM
table
WHERE
date ='0000-00-00'
GROUP BY
filename,
server,
date
实际结果:
server filename v4 date
local code1.zip 41 0000-00-00
remote code1.zip 39 0000-00-00
预期结果:
server filename v4 date
local code1.zip 41 0000-00-00
编辑:适用于 MySQL
提前致谢。
最佳答案
如果您只想要具有最大 v4 的行,您可以使用它
SELECT
server,
filename,
v4,
date
FROM
`table`
WHERE
date ='0000-00-00'
ORDER BY v4 DESC
LIMIT 1
要获得每个文件名的最大 V4,首先你要按文件名获得 max(v4) 组,然后使用 table
INNER JOIN 返回,如下所示
SELECT T1.server,T1.filename,T1.v4,T1.date
FROM
`table` T1 INNER JOIN
(SELECT filename,max(v4) as maxv4
FROM `table`
WHERE date = '0000-00-00'
GROUP BY filename)T2
ON T1.filename = T2.filename AND T1.v4 = T2.maxV4
WHERE date = '0000-00-00';
关于mysql - 从查询中返回最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21241326/