SELECT SUM(bytes),stamp_updated
from acct
where stamp_updated BETWEEN datetime('now', 'localtime','-7 hours') AND datetime('now', 'localtime')
GROUP BY ip_src
ORDER BY bytes DESC limit 10;
48498275|2012-04-09 11:26:01 6977282|2012-04-09 08:27:01 1192705|2012-04-09 08:46:02 3971336|2012-04-09 09:46:04 1909543|2012-04-09 11:28:04 265829|2012-04-09 09:11:02 1234909|2012-04-09 10:28:04 2396834|2012-04-09 11:28:02 192638|2012-04-09 09:00:01 30766141|2012-04-09 11:31:01
为什么第一列没有正确排序(DESC)?
答案 0 :(得分:3)
您在汇总之前订购了bytes
列。试试这个:
SELECT SUM(bytes) AS total_bytes, stamp_updated
FROM acct
WHERE stamp_updated BETWEEN datetime('now', 'localtime','-7 hours') AND datetime('now', 'localtime')
GROUP BY ip_src
ORDER BY total_bytes DESC limit 10;
答案 1 :(得分:1)
您正在对要排序的字段进行汇总。这些单个数据本身不再存在,而是作为您分组的每个元素的总数。
也许您正在尝试order by SUM(bytes)
?
除此之外,请考虑按照select语句中的所有非聚合字段进行分组...您在组中缺少stamp_updated
。