SQL - 对应于两列的列的最大值

时间:2012-10-07 09:07:29

标签: mysql sql

一个表包含四列“server”,“directory”,“usage”和“datetime”。所有服务器共有10个目录。我需要获取服务器的数据,这是任何一天中最新日期时间的用法。 例如,如果存在具有目录B的服务器A,那么将在几天内多次使用。我需要查询报告所有服务器的数据,这是每天最新条目的所有相应目录的使用情况。

2 个答案:

答案 0 :(得分:1)

如果我正确理解了您的问题,您希望查看每个服务器和目录的最后用法。给定一个名为“usagestats”的表,其中给定的列为:

SELECT a.server, a.directory, a.`usage`, a.datetime
    FROM usagestats as a INNER JOIN (
        SELECT server, directory, max(datetime) datetime
            FROM usagestats
            GROUP BY server, directory
        ) AS b ON (
            a.server = b.server
            and a.directory = b.directory
            and a.datetime = b.datetime
        )
    ORDER BY a.server, a.directory, a.datetime

答案 1 :(得分:0)

我不确定我是否理解你的问题。

MySQL具有IF()函数,它根据第一个参数中的条件返回一个语句。

如果要从数字较大且只有2列的列中选择数据 - 请使用如下的IF语句:

SELECT 
if(columnA > columnB, columnA , columnB) as grtColumn,
if(columnA > columnB,'columnA is bigger', 'columnB is bigger') as whichColumnWasGrt

from yourtable;

帮助:mysql reference - if() function(有IF语句和IF()函数 - 不同的thigs!