我正在创建一个查询,使用PHP从MySQL数据库中提取结果,查询结果输出到Excel文档。
以下是查询:
$sql = "SELECT node, port, MAX(utiltx), MAX(utilrx), time, hour(time), day(time), month(time) FROM intfstats WHERE node IN('$separated') AND year(time)=$year AND month(time)=$month AND port IN('$portsep') GROUP BY node,port,day(time);";
我认为查询工作正常,但它始终将时间显示为午夜(这是时间戳列中的第一个)。
目标是查询的乘积是白天的最大利用率rx和tx,以及发生最大吞吐量的时间。
我很感激任何有关这方面的帮助,因为我已经花了很长时间没有足够的MySQL查询知识来推迟它!
答案 0 :(得分:0)
如果您在某一天有2个以上具有相同最大值的记录,您如何处理打破平局?
SELECT t.node,
t.port,
t.utiltx,
t.utilrx,
t.time,
HOUR(t.time),
DAY(t.time),
MONTH(t.time)
FROM INTFSTATS t
JOIN (SELECT is.node,
is.port,
MAX(is.utiltx) 'mutiltx',
MAX(is.utilrx) 'mutilrx',
DAY(is.time) 'dd',
MONTH(is.time) 'mon',
YEAR(is.time) 'yy'
FROM INTFSTATS is
WHERE is.node = $node
AND is.port = $port
GROUP BY is.node,
is.port,
DAY(is.time),
MONTH(is.time),
YEAR(is.time)) x ON x.node = t.node
AND x.port = t.port
AND x.mutiltx = t.utiltx
AND x.mutilrx = t.utilrx
AND x.dd = DAY(t.time)
AND x.mon = MONTH(t.time)
AND x.yy = YEAR(t.time)
WHERE x.yy = $year
AND x.mon = $mon