# **通用字段**
> 不是所有的stat_*表都有这些字段
- end_date
> 统计截止日期, 最迟以某日期的第24时为计算截止点,统计数据将包含此日期
- end_type
> 截止类型,例如: 近1天(1d),近7天(7d),近30天(30d)
- dur_cond
> 运动时长条件:填ALL则取全部,其他具体值例如 <5min, >=5min, >=10min。
>
> 特别注明:end_type=1d时此字段称为日时长,end_type=7d时此字段称为周时长,end_type=30d时此字段称为月时长
- user_num
> 人数(根据条件存储)
- trend_num
> 变化趋势:同条件下,较上一个end_date统计值的差值。差值=当前值 减去 上一值,得出正数为增、负数为减
# **运动统计总览**
### 后台地址
> /stat/JogUserNumOnAllPoint
### 相关代码
- models/StatJoguserDurNum.php (用于定时任务计算)
- models/StatJoguserDurNumService.php (用于展示查询)
### 数据来源
> exer_record
### 统计详解
> 每日统计 ``[从一定天数前 至当日最迟24点]`` 各种时长对应的跑步人数,再细分地区、性别
> 在观测出各地区数据量足够大之前,暂时不分表
- 基本条件:end_date + end_type + dur_cond
- 其他条件:gender | province_id | city_id | district_id
- 查询提示:
> 该统计表的条件并非常规思维设计的那样,可以任意组合条件查询。
>
> 除id,user_num,trend_num之外,全部字段均需要作为查询条件。
>
> 要求全部指定具体条件的字段有:end_type, end_date, dur_cond。(基本条件)
>
> 不可互相组合为非0条件的字段有:province_id, city_id, district_id, gender。(只要一者非0,则其他条件必定只能设0)
- 字段疑难点解释:
> - gender有0(全部),1(男),2(女),-1(未知). 这跟user表的gender(0-未知,1-男,2-女)有所区别。
>
> - province_id以0表示不限省份,以 -1 表示未知省份。
>
> - city_id以0表示不限省份,以 -1 表示未知城市。
>
> - district_id以0表示不限省份,以 -1 表示未知区县。
>
> - dur_cond为ALL时表示全部条件人数的并集。
>
> - end_type有1d, 7d, 30d, 90d. 表示近几天,统计截止点在end_date当天晚23:59:59
---
# **游戏统计总览**
### 后台地址
> /stat/GameUserNumOnAllPoint
### 相关代码
- models/StatGameuserDurNum.php (用于定时任务计算)
- models/StatGameuserDurNumService.php (用于展示查询)
### 数据来源
> exer_record
### 统计详解
> 每日统计 `[从一定天数前 至当日最迟24点]` 各种时长对应的玩游戏人数,再细分游戏ID、地区、性别
> 在观测出各地区数据量足够大之前,暂时不分表
- 基本条件:
> end_date+end_type+dur_cond
- 其他条件:
> game_id | gender | province_id | city_id | district_id
- 查询提示:
> 该统计表的条件并非常规思维设计的那样,可以任意组合条件查询。
> 除id,user_num,trend_num之外,全部字段均需要作为查询条件。
> 要求全部指定具体条件的字段有:end_type, end_date, dur_cond。(基本条件)
> 不可互相组合为非0条件的字段有:game_id, province_id, city_id, district_id, gender。(只要一者非0,则其他条件必定只能设0)
- 字段疑难点解释:
> - game_id=0表示全部游戏人数的并集
> - gender有0(全部),1(男),2(女),-1(未知). 这跟user表的gender(0-未知,1-男,2-女)有所区别。
> - province_id以0表示不限省份,以 -1 表示未知省份。
> - city_id以0表示不限省份,以 -1 表示未知城市。
> - district_id以0表示不限省份,以 -1 表示未知区县。
> - dur_cond为ALL时表示全部条件人数的并集。
> - end_type有1d, 7d, 30d, 90d. 表示近几天,统计截止点在end_date当天晚23:59:59
- 验证数据准确性的方法:
> 根据
>
> select * from stat_gameuser_dur_num where end_date='具体日期' and end_type='具体截止类型' and dur_cond='具体时长条件'
>
> 的查询结果,其总人数为S (条件为game_id=0 & gender=0 & province_id=0 & city_id=0 & district_id=0)。
>
> 如果各性别人数之和等于S、且S不低于最大省份人数,
>
> 则数据准确。
---
# **论坛统计总览**
### 后台地址
> /forum/ForumUserNumOnAllPoint
### 相关代码
- models/StatForumuserNum.php (用于定时任务计算)
- models/StatForumuserNumService.php (用于展示查询)
### 数据来源
> forum_date_view_record
### 统计详解
> 每日统计 `[从一定天数前 至当日最迟24点]` 社区访问人数
- 基本条件:
> end_date+end_type
- 其他条件:
> forum_id
- 查询提示:
> 该统计表的条件并非常规思维设计的那样,可以任意组合条件查询。
>
> 除id,user_num,trend_num之外,全部字段均需要作为查询条件。
>
> 要求全部指定具体条件的字段有:end_type, end_date。(基本条件)
>
> 不可互相组合为非0条件的字段有:forum_id。(只要一者非0,则其他条件必定只能设0)
- 字段疑难点解释:
> - forum_id=0表示全部分区人数的并集
> - end_type有1d, 7d, 30d, 90d. 表示近几天,统计截止点在end_date当天晚23:59:59
- 验证数据准确性的方法
> 根据
>
> select * from stat_forumuser_num where end_date='具体日期' and end_type='具体截止类型'
>
> 的查询结果,其总人数为S (条件为forum_id=0)。
>
> 如果S不低于最大分区人数,
>
> 则数据准确。