[关闭]
@dooy 2022-10-13T05:05:53.000000Z 字数 5394 阅读 754

利用es统计的一些从mysql中的数据格式说明 学校统计

数据格式


安装

安装文档在这里

  1. https://github.com/Dooy/DrPHP/tree/main/crontab/elasticsearch

1.用户 pigaimember

字段 类型 说明
user_id int key 唯一
school string 学校
city string
city2 string
city3 string
school_type ini 学校类型 0本科,1中学,2小学,3高职,4培训,5其他
m_school_type ini 用户类型 0:大学,1:中小学强关系,2:高中(旧),4:初中(旧),3:小学(旧),5:高中,6:初中,7:小学,
ctime int 注册时间截
lastlogin int 最后登陆时间截
ts int 1为老师,2为学生
rz int 0为无认证,大于0为认证
end_time int 有效期截止时间
lg_cnt int 登陆次数
renzheng int 认证
pay int 付费
gt_time int 沟通时间
sex int 性别
invite_uid int 默认0 我的推荐人user_id
  1. SELECT
  2. m.user_id as _id,m.user_id , FROM_UNIXTIME( m.ctime) as ctime ,m.teacher_or_student as ts,FROM_UNIXTIME(m.lastlogin) as lastlogin , FROM_UNIXTIME( m.end_time) as end_time ,m.lg_cnt,m.score ,m.renzheng,m.pay, FROM_UNIXTIME(m.gt_time) as gt_time,m.school_type as m_school_type,mi.name
  3. ,mi.school,mi.request_cnt,mi.essay_cnt ,mi.stu_cnt,mi.rz,mi.pigai_cnt,mi.version_cnt,mi.sex
  4. ,s.city, s.city2, s.city3 ,s.type2 as school_type
  5. ,ui.invite_id as invite_uid
  6. FROM
  7. member as m
  8. left join member_info AS mi on mi.user_id=m.user_id
  9. left join school AS s ON mi.school = s.school
  10. left join user_invite as ui on ui.user_id=m.user_id
  11. limit 10;

2. 作文题目 pigairequest

字段 类型 说明
request_id int key 唯一
user_id int 布置作文user_id
school string 学校
city string
city2 string
city3 string
school_type ini 学校类型 0本科,1中学,2小学,3高职,4培训,5其他
ctime int 布置时间截
type int 小于0被删除 上面是各种状态
essay_type int 作文类型
valid_begin_time int 开始时间截
valid_end_time int 截止时间截
essay_cnt int 收到的学生文章数
f_request_id int 母作文号
manfen float 满分
invite_uid int 默认0 我的推荐人user_id
  1. select
  2. e.essay_id as _id,e.essay_id,e.user_id ,e.request_id,FROM_UNIXTIME(e.ctime) as ctime ,e.score,e.sy_score,e.type,e.version
  3. ,mi.name ,mi.school ,mi.student_number as stu_number,mi.class as stu_class
  4. ,s.city, s.city2, s.city3 ,s.type2 as school_type
  5. ,ui.invite_id as invite_uid
  6. ,ea.good,ea.teacher_view,ea.view
  7. ,r.user_id as t_user_id,r.essay_type, FROM_UNIXTIME(r.valid_end_time) as valid_end_time, r.manfen,r.teacher_name
  8. ,rq.f_request_id
  9. ,ecat.cat_id
  10. from eng_essay as e
  11. left join member_info as mi on e.user_id=mi.user_id
  12. left join school as s on mi.school=s.school
  13. left join user_invite as ui on ui.user_id=e.user_id
  14. left join eng_essay_attr as ea on e.essay_id=ea.essay_id
  15. left join eng_rq_ying as rq on rq.request_id=e.request_id
  16. left join eng_essay_request as r on e.request_id =r.request_id
  17. left join eng_rq_cat as ecat on e.request_id =ecat.request_id
  18. where r.request_id>1000 ;

3. 作文文章 pigaiessay

字段 类型 说明
essay_id int key 唯一
request_id int 题目id
user_id int 作者user_id
t_user_id int 老师的id布置作业
school string 学校
city string
city2 string
city3 string
school_type ini 学校类型 0本科,1中学,2小学,3高职,4培训,5其他
type int 小于0被删除 上面是各种状态 2是被批改
ctime int 提交作文时间
score float 作文分数 当type=2 认为是人工打分的
sy_score float 系统作文分数
version int 版本(从2开始)
valid_end_time int 截止时间截
essay_type int 作文类型
manfen int 满分
teacher_name int 老师名字
f_request_id int 母作文号
invite_uid int 默认0 我的推荐人user_id
good int
teacher_view int 教师查看数
view int 查看数
  1. select
  2. e.essay_id as _id,e.essay_id,e.user_id
  3. ,e.request_id,FROM_UNIXTIME(e.ctime) as ctime ,e.score
  4. ,e.sy_score,e.type,e.version ,mi.school ,s.city, s.city2, s.city3 ,s.type2 as school_type
  5. ,ui.invite_id as invite_uid ,ea.good,ea.teacher_view,ea.view
  6. ,r.user_id as t_user_id,r.essay_type, FROM_UNIXTIME(r.valid_end_time) as valid_end_time,
  7. r.manfen ,rq.f_request_id ,ecat.cat_id
  8. from
  9. eng_essay as e
  10. left join member_info as mi on e.user_id=mi.user_id
  11. left join school as s on mi.school=s.school
  12. left join user_invite as ui on ui.user_id=e.user_id
  13. left join eng_essay_attr as ea on e.essay_id=ea.essay_id
  14. left join eng_rq_ying as rq on rq.request_id=e.request_id
  15. left join eng_essay_request as r on e.request_id =r.request_id
  16. left join eng_rq_cat as ecat on e.request_id =ecat.request_id

4.学校统计

学校列表

SELECT school, count(*) as cnt FROM pigaimember
where city='四川' and city2='地级市' and city3='区县'
and school_type in('0','3')
group by school limit 5000

4.1人数统计

4.1.1 注册人数、注册老师、注册学生数

ts 1为老师 2为学生

SELECT school,ts , count(*) as cnt FROM pigaimember where school in('四川大学','电子科技大学')
group by school,ts

4.1.2 认证老师数

SELECT school , count(*) as cnt FROM pigaimember
where school in('四川大学','电子科技大学')
and ts=1 and renzheng=1
group by school

4.1.3 标准版老师数

SELECT school , count(*) as cnt FROM pigaimember
where school in('四川大学','电子科技大学')
and ts=1 and end_time>当前时间戳
group by school

4.1.4 有布置并收到作文的老师数(选做)

SELECT school ,user_id , count(*) as cnt FROM pigairequest
where school in('四川大学','电子科技大学')
and essay_cnt>1
group by school, user_id

4.2布置统计

SELECT school , count(*) as cnt FROM pigairequest
where school in('四川大学','电子科技大学')
group by school

4.3提交作文统计

4.3.1 老师收到的作文数

SELECT school , sum(essay_cnt) as cnt FROM pigairequest
where school in('四川大学','电子科技大学')
group by school

4.3.2 学生提交的作文数、批改次数

SELECT school , sum(version) as version,count(*) as cnt FROM pigaiessay
where school in('四川大学','电子科技大学')
group by school

5 学校管理员面板 统计

5.1 老师布置年分布题目极收上作业

  1. SELECT ctime,count(distinct user_id) as t_user_cnt,count(*) as cnt,sum(essay_cnt) as t_essay_cnt FROM pigairequest where school in ('贵阳医学院','贵州医科大学') and ctime>'2012-01-01' and ctime<now group by date_histogram(field='ctime','interval'='1y','alias'='ctime',format='yyyy')
  2. #学生提交的作业统计
  3. SELECT ctime,count(*) as essay_cnt,sum(version) as version FROM pigaiessay where school in ('贵阳医学院','贵州医科大学') and ctime>'2012-01-01' and ctime<now group by date_histogram(field='ctime','interval'='1y','alias'='ctime',format='yyyy')
  4. # 加统计单独用户数 和 单独作文数 用时多了 1呗
  5. SELECT ctime,count(distinct user_id) as user_cnt,count(distinct request_id) as rq_cnt, count(*) as essay_cnt,sum(version) as version FROM pigaiessay where school in ('贵阳医学院','贵州医科大学') and ctime>'2012-01-01' and ctime<now group by date_histogram(field='ctime','interval'='1y','alias'='ctime',format='yyyy')

5.2 注册人数统计

  1. select ts,rz,count(*) as cnt from pigaimember where school in ('贵阳医学院','贵州医科大学') group by ts,rz

5.3 按周、月、年统计

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注