利用 group by 查询网站每天的访问量

       最近有个任务要统计网站每天的访问量,也就是统计一天之中有多少个不同的ip访问了网站。数据库的格式大概是每个ip访问网站的任何位置都会有一条记录,也就是说在一天之中,同一个ip有多条记录。数据库的格式大概如下:

useridipdate
1116.74.50.542017-08-28
2116.74.50.542017-08-28
3116.74.50.542017-08-29
4116.74.50.352017-08-30
5116.74.50.352017-08-30
6116.74.50.352017-08-30
7116.74.50.352017-08-30
8116.74.50.52017-08-30
9116.74.50.52017-08-30
10116.74.50.52017-08-30
11116.74.50.52017-08-30

       开始的时候作死的根据传入的查询日期段,先将日期分割成每天,再一个日期一个日期的传入数据库查询每天的ip个数。sql语句大致如下:

select
    count(distinct a.ip) as total
from
    sys_log a
where
    a.date = '2017-08-30'

结果当查询的时间段为两年的时候,要查询数据库700多次,效率极低。写出这样的代码,心情可想而知。QAQ
        后来才发现使用 group by 直接可以一次性查出指定时间段内每一天的ip数量,当输入的时间跨度为两年时,也只会查询一次数据库。效率大大的提高了!修改之后的sql语句大致如下:

select 
    count(distinct a.ip) as total
from
    sys_log a 
where
    a.date between '2015-08-30' and '2017-08-30'
group by 
    a.date
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值