查找在同一天出现多次的IP地址

时间:2014-06-09 16:47:39

标签: mysql

我有一个包含2列的表 - date_time和ip_address。我希望能够识别每天出现10次以上的IP地址。我无法弄清楚如何仅从date_time列中提取日期并运行此查询,这是我尝试过的:

    SELECT ip_address, date(date_time) as date, count(date) as cnt FROM ip_tracking GROUP BY date_time, ip_address HAVING cnt > 10 ORDER BY date_time DESC

我收到#1054 - 未知专栏' date'在'字段列表'。我是否需要在查询开头创建一个列?

由于

2 个答案:

答案 0 :(得分:0)

您无法在同一级别中访问表达式的别名。而是使用与'count'相同的表达式。

我相信您希望count date而非date_time

SELECT ip_address
     , date(date_time) as date
     , count( date( date_time ) ) as cnt 
FROM ip_tracking 
GROUP BY date( date_time ), ip_address 
HAVING cnt > 10 
ORDER BY date_time DESC

答案 1 :(得分:0)

使用group by的日期(你可以使用别名),并使用COUNT(*)(而不是在计数中有别名)。

SELECT ip_address,
     date(date_time) as date,
     count( * ) as cnt 
FROM ip_tracking 
GROUP BY date, ip_address 
HAVING cnt > 10 
ORDER BY date DESC