SQL统计腾讯会议参会信息技巧

2024-05-24 18:58:47 浏览数 (2)

腾讯会议支持导出参会人员信息,Excel格式如下所示,

如果要统计参会人会员是否迟到早退,可以通过Excel计算,除此之外,还可以将数据导入数据库中,利用SQL进行各种维度的统计,可以采用如下的通用表定义,此处采用MySQL,可以改为任何的数据库,

代码语言:javascript复制
create table tencent_meeting (
  id int not null auto_increment primary key,
  name varchar(255),
  department varchar(255) not null,
  in_time varchar(255) not null,
  out_time varchar(255) not null,
  is_enterprise_weixin int(1),
  actual_name varchar(255)
);

字段的解释:

id:自增的主键。

name:如果是企业微信登录,此处显示企业中该人员的姓名,如果是微信登陆,此处显示"人员姓名@腾讯会议",或者微信昵称。

department:所属部门,如果是企业微信登录,显示该人员在企业中的部门名称,如果是微信登录,则此项是空的。

in_time:入会时间,格式YYYY-MM-DD HH:MI:SS。

out_time:完会时间,格式YYYY-MM-DD HH:MI:SS。

is_enterprise_weixin:此处不是导出的字段,如果要区分微信和企业微信,可以根据name是否包含"腾讯会议"进行判断设置该字段,例如,

代码语言:javascript复制
update tencent_meeting set is_enterprise_weixin = 1 where name not like '%腾讯会议%';
update tencent_meeting set is_enterprise_weixin = 0 where name like '%腾讯会议%';

actual_name:因为有可能通过微信登录,名称中自动带着"@腾讯会议",因此可以通过一些处理,设置实际姓名,例如,

代码语言:javascript复制
update tencent_meeting set actual_name = substring_index(name, '@腾讯会议', 1);

如果要了解会议的参加情况,例如正常参会(13:30前入会,17:00后退出),可以根据in_time和out_time进行过滤,

代码语言:javascript复制
select actual_name, department, in_time, out_time from tencent_meeting
where str_to_date(in_time, '%Y-%m-%d %H:%i:%s') <= '2023-01-01 13:30:00'
and str_to_date(out_time, '%Y-%m-%d %H:%i:%s') >= '2023-01-01 17:00:00'

但是如果同一个人多次登录-退出-登录,在导出的数据中,就是按照多条记录存储的,这就给统计工作带来了复杂,目前腾讯会议不能支持将同一个人多次登录记录合并导出的功能。

可以通过设置一些规则,例如两次登陆间隔多久可以合并等,通过SQL或者程序进行记录的整合。

0 人点赞