1

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

4

2 回答 2

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
于 2012-10-07T10:13:12.850 回答
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 参考 - if() 函数(有 IF 语句和 IF() 函数 - 不同的事情!

于 2012-10-07T10:57:53.713 回答