mysql 拼列
发布网友
发布时间:2022-04-10 14:26
我来回答
共1个回答
热心网友
时间:2022-04-10 15:55
呵,这题有点复杂,分太少了,算了,还是帮你回答吧:
mysql> SET @EE='';
mysql> SELECT @EE:=CONCAT(@EE,'SUM(IF(科目=''',科目,'''',',分数,0)) AS ',科目,',') FROM (SELECT DISTINCT 科目 FROM 表名) A;
mysql> SET @QQ=CONCAT('SELECT a.学生,',LEFT(@EE,LENGTH(@EE)-1),' , b.科目数 as 参加科目数 FROM 表名 a,(select 学生,count(*) as 科目数 from 表名 group by 学生) b where a.学生=b.学生 GROUP BY a.学生');
mysql> PREPARE stmt2 FROM @QQ;
mysql> EXECUTE stmt2;
mysql> dellocate PREPARE stmt2;