-1
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)?

4

2 回答 2

4

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;
于 2012-04-09T18:41:52.930 回答
1

您正在汇总您尝试排序的字段。这些单条数据不再单独存在,而是作为您分组依据的每个元素的总数。

也许你正在尝试order by SUM(bytes)

除此之外,请考虑按 select 语句中的所有非聚合字段进行分组……您在stamp_updated分组依据中丢失了。

于 2012-04-09T18:41:47.670 回答