如何计算每天具有不同IP地址的行?

Ste*_*ven 2 mysql

我如何计算每天在我的网站上有多少个唯一地址?我的表看起来像这样:

行名:id,name,entity,ip_address,date

1,"Baldur","EntityA","85.221.18.251","2012-01-09 17:32:52"2,"Baldur","EntityB","85.221.18.251","2012-01-09 17:32:57"3,"Baldur","EntityB","85.221.18.252","2012-01-09 17:33:01"4,"Baldur","EntityA","85.221.18.253", "2012-01-10 17:33:12"5,"Mango","EntityA","85.221.18.257","2012-01-10 17:32:52"6,"Baldur","EntityB", "85.221.18.251","2012-01-10 17:32:57"7,"芒果","实体B","85.221.18.253","2012-01-11 17:33:01"8,"芒果","EntityA","85.221.18.251","2012-01-11 17:33:12"9,"Mango","EntityA","85.221.18.253","2012-01-11 17:32: 52"10,"Baldur","EntityB","85.221.18.255","2012-01-11 17:32:57"11,"Mango","EntityB","85.221.18.254","2012-01 -11 17:33:01"12,"Mango","EntityA","85.221.18.251","2012-01-12 17:33:12"

我正在考虑以下几点:

SELECT date, COUNT(ip)
FROM mytable
GROUP BY date
Run Code Online (Sandbox Code Playgroud)

这只给了我一个计数为1的行.

Sir*_*rko 7

您没有按日期(即每天一个条目)进行分组,而是按实际时间戳进行分组,在您的情况下,该时间戳会缩短到一秒.您必须应用该date函数从中提取实际日期.

另一方面,添加DISTINCT关键字以实际计算不同的ips并忽略重复的条目.

SELECT DATE( `date` ), COUNT( DISTINCT ip_address )
  FROM mytable
  GROUP BY DATE( `date` )
Run Code Online (Sandbox Code Playgroud)