实现统计某个月内每天新增用户数的方法

现在有一个需求:管理员选择某一个月份,然后显示这个月每天的新增用户数。

首先获得管理员选择的日期,然后获得本月的起始时间戳和结束时间戳,在通过和member表中的addtime字段进行比较,从而获得当月新增的用户列表,这个是不难实现的。

那么要怎么获得每日的新增用户数量呢?如果要用select count(1) 这样的语句配合addtime>=begin_time+86400 and addtime<=begintime+172800这样的条件来查询就太恐怖了,先不说操作复杂,而且执行一次操作就要查询30或31次,这样肯定不行。

可以换一个思路,既然我们已经能够获得当月新增的用户列表members,那么每个用户的addtime我们也可以知道了,此时可以对整个members列表进行遍历,把日期作为键名,用户数作为键值创建一个新数组,如果某条记录的addtime已经在数组中存在的话就加1,不存在的话就以这个addtime创建一个新元素。

<?php
$arr_mem = array();
foreach ($members as $k => $v) {
    $datetime = substr($v['addtime'],0,10);//得到年月日
    //得到每日新增用户数
    if(array_key_exists($datetime,$arr_mem)){
        $arr_mem[$datetime] +=1;
    }else{
        $arr_mem[$datetime] =1;
    }
}
var_dump($arr_mem);die;
/*
array (size=31)
  '2013-12-01' => int 64
  '2013-12-02' => int 191
  '2013-12-03' => int 200
  '2013-12-04' => int 217
  '2013-12-05' => int 217
  '2013-12-06' => int 228
  '2013-12-07' => int 148
  '2013-12-08' => int 91
  ... ...
*/

?>
时间: 2024-08-27 07:29:43

实现统计某个月内每天新增用户数的方法的相关文章

各时间点拥有新增用户数趋势

场景:假设现在要分析某天每小时新增累加的一个上升趋势,即在各个时间点拥有的新增用户数的一个趋势.用户明细表tab_createuser,一条记录就是一个新增用户. 首先需要将每小时里新增的角色查询出来: select to_char(logtime, 'yyyy-mm-dd-hh24') logtime,count(*) createnum from tab_createuser where logtime >= to_date('2015-06-17', 'yyyy-mm-dd')-1 and

NMath Stats 统计计算和生物统计学算法库使用方法及下载地址

NMath Stats提供了统计计算和生物统计学领域的处理功能,包括描述统计.概率分布.组合功能.多重线型回归.假设检验.方差分析计算和多元统计. 具体功能: 提供了一个数据架构类来保证多种不同的数据类型(数值型.字符串型.时间数据型和通配符型),并提供了多种操作方法设置.插入.移除.排序和改变行和列 提供了描述统计的功能,包括求平均值.求方差.求标准差.求百分率.求中值.求四分点值.求几何平均数.求调和平均值.求均方根值.求峰值.求偏斜度等 提供了专门的处理功能,比如阶乘.对数阶乘.二项式系数

S5中新增的Array方法详细说明

ES5中新增的Array方法详细说明 by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu.com/wordpress/?p=3220 一.前言-索引 ES5中新增的不少东西,了解之对我们写JavaScript会有不少帮助,比如数组这块,我们可能就不需要去有板有眼地for循环了. ES5中新增了写数组方法,如下: forEach (js v1.6) map (js v1.6) filter (js v1.6

字符串方法,js中的数组方法,ES5新增的数组方法,以及jQuery中的数组方法

说明:本片主要对比介绍与数组操作相关的方法 (一)字符串方法(String对象方法) indexOf() //检索字符串 lastIndexOf() //从后向前搜索字符串 match() //找到一个或多个正则表达式的匹配 replace() //替换与正则表达式匹配的子串 search() //检索与正则表达式相匹配的值 slice() //提取字符串的片断,并在新的字符串中返回被提取的部分 split() //把字符串分割为字符串数组 substr() //从起始索引号提取字符串中指定数目

电脑新增SNMP的方法

windows server 2003 SNMP windows server 2003 启动本机 SNMP 1. 要侦测本机的 snmp 状态请启用它 开启控制面板 → 新增移除程序 → 新增移除Windows组件 → Management and Monitoring Tools → Simple Network Management Protocol 将它打勾后点选确定并启动它. 2. 到服务设定 SNMP Service -> Agent代理程序下面的服务全打勾,才可以侦测 HD 和 R

mysql中利用DATE_FORMAT方法 实现统计每日/每月的新增用户

要实现统计每日或每月的新增用户,但数据库中的存的时间是时间戳,所以就要利用DATE_FORMAT函数 数据库表存的数据: 要统计每日的新增用户 ,就要把时间戳格式的时间FORMAT成年-月-日的格式,并按照format过的字段做分组(group by),计算count sql语句: SELECT DATE_FORMAT(create_time,'%Y-%m-%d') as time , count(*) as count FROM tb_users GROUP BY time 查询结果: DAT

新版的复制统计工具介绍,微信加粉推广辅助工具,增强了复制统计功能以外,新增了二维码轮播,电话拨打统计

今年已经发展到了3.x版本,新版的比老版本新增了很多功能,除了之前已有的微信号在线管理,和复制统计,以及网页状态监控等功能以外.新增了扫码统计,二维码轮播,微信号自动上下控制,手动控制,拨打电话统计,点击复制,打开微信等,还有更强大的拦截功能.到现在为止,我们应该是最完善的微信加粉推广辅助工具了. 并且我们一直提供免费版,相对于付费版功能并无过多缩减,只是限制了能统计的落地页的数量,因为统计流量巨大,如果免费开放更多会统计的数量会占用更多的服务器资源造成服务器压力过大,从而服务器成本也会直线上升

&lt;转&gt;统计源代码行数的一些实现方法

这个问题的思考其实对于某一种语言而言,基本都能实现,只是简单和复杂而已.而此次我讨论就是只是在linux下面使用了shell和c对源代码进行行 数的讨论.本打算是实现一个python版本的,由于python这块还不是太熟,所以就等以后熟了把这块补上. shell版 shell的强大快捷之处就在此体现出来了.我们使用find命令就直接能将目标的文件进行检索,然后我们就直接对检索出来的对象进行统计.统计 我们知道使用wc这个命令,但是我们观察一下wc的输出: 206 ./2014-03-09-jek

es6新增的数组方法和对象

es6新增的遍历数组的方法,后面都会用这个方法来遍历数组,或者对象,还有set,map let arr=[1,2,3,4,3,2,1,2]; 遍历数组最简洁直接的方法法 for (let value of arr) { console.log(value);//输出1,2,3,4,3,2,1,2 } 1. 数组.map() 返回一个新的数组,es5要复制一个新的数组我们一般用循环,现在直接用map let arr=[1,2,3,4,3,2,1,2]; let newArr=arr.map((va