我在表格中有两列,第一个是日期时间格式的日期(例如2014-07-14 21:00),第二个是金额。
我正在寻找一种方法来返回每天的峰值金额及其日期和时间。时间。
SELECT datetime,MAX(EarlySessSetupSuccCtr)
FROM netact_15min.cscflcc_pcscf WHERE datetime >= (now() - interval 5 day)
GROUP BY day(datetime)
即使峰值数量发生在不同的时间,也会始终返回00:00的时间。
答案 0 :(得分:0)
您可以通过将子选择中的日期和最大金额与表格中存储的金额相匹配,在同一张桌子上使用自我加入
SELECT t.*
FROM netact_15min.cscflcc_pcscf t
JOIN (
SELECT DAY(`datetime`) `day`,MAX(EarlySessSetupSuccCtr) max_amount
FROM netact_15min.cscflcc_pcscf
WHERE `datetime` >= (NOW() - INTERVAL 5 DAY)
GROUP BY `day`
) t1
ON(t1.`day` = DAY(t.`datetime`) AND t.EarlySessSetupSuccCtr = t1.max_amount)
请注意,如果在特定日期有两个记录包含最大金额,则每天可以提供超过一个结果
答案 1 :(得分:0)
没有一些数据我无法测试这个..但我相信这会做你想要的。
SELECT DATE(datetime), MAX(EarlySessSetupSuccCtr)
FROM netact_15min.cscflcc_pcscf
WHERE DATE(datetime) >= (CURDATE() - INTERVAL 5 day)
GROUP BY DATE(datetime)
基本上删除时间部分...将日期时间列的日期与过去5个日期进行比较..然后按该日期分组。应该解决你的问题