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



>一个表包含四列"服务器"、"目录"、"使用情况"和"日期时间"。所有服务器都有 10 个共同点。我需要获取服务器的数据,这是一天中最新日期时间的任何使用情况。例如,假设有一个目录为 B 的服务器 A,那么几天内将多次使用。我需要查询所有服务器报告的数据,这是每天最新条目的所有相应目录的使用情况。

如果我正确理解了您的问题,您希望查看每个服务器和目录的最后使用情况。给定一个名为"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

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

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 参考 - if() 函数(有 IF 语句和 IF() 函数 - 不同的 thigs!

最新更新