sql查询帮助使用distinct和count()

时间:2011-07-12 14:50:21

标签: mysql

我有一个包含防火墙日志的表。我正在尝试形成一个查询,它将为我提供过去X天内所有连接的降序报告。

这是我到目前为止的查询:

 select distinct ip_saddr,oob_time_sec,count(*) as cnt 
 from ulog 
 where (oob_prefix like '%INPUT%' and oob_time_sec >= '$phpdays')
 group by ip_saddr 
 order by cnt desc;

 table
 -----------------------------------------------------------------
 ip_saddr     = ip address
 oob_time_sec = time since unix epoch in seconds
 ulog         = database table
 oob_prefix   = string from firewall entry (INPUT_x/OUTPUT_x traffic)

想知道这个查询是否看起来很健全(我是戴着程序员帽子的管理员,所以不太确定)。

谢谢!

2 个答案:

答案 0 :(得分:1)

在我看来,您的查询是正确的,也是正确的。

答案 1 :(得分:1)

对我来说很好,但我认为LIKE应该像

oob_prefix like 'INPUT%'

因为oob_prefixINPUT_x