我想连接并计算同一列的数据,所以我可以连接但我不能计算重复的数据。见下表
创建表的查询:
如果存在 `tb_presence`,则删除表; 创建表`tb_presence`( `code_presence` smallint(6) unsigned NOT NULL AUTO_INCREMENT, `licao_study` varchar(10) NOT NULL, `fk_number_lesson` varchar(4) NOT NULL, 主键(`code_presence`) ) 引擎=InnoDB AUTO_INCREMENT=35 默认字符集=utf8; 开始; 插入`tb_presence`值('1','0.5','2'),('2','0','2'),('3','0.5','1'),(' 4', '1', '3'), ('5', '1', '2'), ('6', '0.5', '1'), ('7', '0.5', ' 3'), ('8', '0', '3'), ('9', '1', '1'), ('10', '1', '3'), ('11' , '1', '1'), ('12', '0', '2'), ('13', '1', '3'), ('14', '0', '3' ), ('16', '0', '1'), ('17', '1', '2'), ('18', '0.5', '2'), ('19', ' 1', '2'), ('20', '0.5', '3'); 犯罪; 设置 FOREIGN_KEY_CHECKS = 1;
现在,在我用来连接数据的查询下方。
选择 fk_number_lesson 作为课程, GROUP_CONCAT( licao_study ORDER BY licao_study ) 作为学习 FROM tb_presence 按 fk_number_lesson 分组;
结果:*看到查询可以连接数据:
课程学习 1 0,0.5,0.5,1,1 2 0,0,0.5,0.5,1,1,1 3 0,0,0.5,0.5,1,1,1
现在,我想“计算”相同的数据并保持数据连接。我的愿望是添加“计数”,结果如下所示:
课程学习obs(计数) 1 1,2,1 (1=0) (2=0.5+0.5) (2=1+1) 2 2,2,3 (2=0+0) (2=0.5+0.5) (3=1+1+1) 3 2,2,3 (2=0+0) (2=0.5+0.5) (3=1+1+1)
*column obs 只是演示,这不是我想要的结果
是否可以进行这样的查询?
_ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ _
今天
在你帮助解决的上述案例中,我有所有预期的结果,例如。“第 1 课”列至少有一次结果 (0,05,1),然后连接和计数将是 (1,1,1)
但是当查询结果缺少某些地方没有响应时,例如。“第 2 课”只是结果 (0,1),连接将是 (1,1)。
当 Select 的结果如下所示时,我喜欢它:
课程学习 1 0,0.5,0.5,1,1 这一行是完整的有3个结果 2 0.5,0.5,1,1,1 这行没有全部结果,只有0.5和1 3 0,0,1,1,1 这行没有全部结果,只有0.5和1
您查询的结果如下所示:
课程学习obs(计数) 1 1,2,1 (1=0) (2=0.5+0.5) (2=1+1)
2 2,3 (2=0.5+0.5) (3=1+1+1) 3 2,3 (2=0+0) (3=1+1+1)
但我希望它没有当这些结果中的一些(0、0.5、1)在课程中,查询添加“0”到位:见下文
课程学习obs(计数) 1 1,2,1 (1=0) (2=0.5+0.5) (2=1+1)
2 0,2,3(加“0”零)(2=0.5+0.5)(3=1+1+1) 3 2,3 (2=0+0) (加“0”零) (3=1+1+1)
那可能吗?