我正试图在我的一个使用SQLite数据库的脚本中优化一些SQL查询。目前,我循环创建多个查询,如下所示,以获取IP地址列表的聚合数据。有没有办法把它作为一个查询来运行?期望的输出是每个IP的“前20个域名”。
SELECT ipaddr, domain, Count(domain) Count
FROM tablea
WHERE (ipaddr = 'IP')
GROUP BY domain
ORDER BY COUNT(domain) DESC
LIMIT 20;
当前结果,每个IP运行一次查询。如果可能的话,我想把它们合并成一个查询。
IP1|DOMAIN1|COUNT
I
我想使用一个域名来查询的。我知道这是可能的,因为这个 (根据ISP域名查找SBL列表)可以做到这一点,而可以这样做,但我似乎只能让它与IP地址一起工作。我快速查看了SpamAssassin代码,但是它已经非常概括了,所以我可能会花几个小时来追踪那些真正起作用的代码。现在,我可以成功地查询SBL中的IP地址:
#returns 127.0.0.2, so 208.73.210.0 is on the blacklist
dig +short 0.210.73.208.sbl.spamhaus.org
#returns nothing, so 72.14.225.72 isn't on