PHP 数据库操作,怎么以日期取出每天出现的不同ip数量。

我有张表,如下图,我想以datetime排序,获得每天出现过几个ip地址。
我用下面这段的话,只能取出总数,不是个数

    
    
    $data['num_ip'] = Db::name("visitors")->where($where)->field("count(ip) as count,datetime")->group("datetime")->select();

image.png

阅读 2.8k
4 个回答

count(distinct ip)

SELECT COUNT(DISTINCT `ip`), `datetime` 
FROM [TABLE_NAME]
GROUP BY `datetime` 
ORDER BY `datetime` ASC;

这得嵌套查询了吧,第一层按日期,IP去重,第二层再像你现在这样

select count(ip) as count,datetime from 
(
    select ip,datetime from table_name group by ip,datetime
)as a 
group by datetime

count group by 或 count(distinct)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题