MySQL -- 行转列 -- GROUP_CONCAT -- MAX(CASE WHEN THEN)
mysql -- group max when case CONCAT 转列
2023-09-11 14:14:57 时间
列转行:利用max(case when then)
SELECT `name`, MAX( CASE WHEN course='语文' THEN score END ) AS 语文, MAX( CASE WHEN course='数学' THEN score END ) AS 数学, MAX( CASE WHEN course='英语' THEN score END ) AS 英语 FROM student GROUP BY `name` ;
合并字段显示:利用group_cancat(course,”:”,”score”)
SELECT `name`, GROUP_CONCAT(course, ":", score) AS 成绩 FROM student GROUP BY `name`;
-- -- -- -- -- -- -- --- - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --- - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --- - -- -- -- -- -- -- -- -- -- -- -- -- -
-- 合并字段显示 : 去重、排序 SELECT rid,GROUP_CONCAT(DISTINCT gid ORDER BY gid) FROM gt_lighting.res_lights GROUP BY rid;
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
多来点面试题:
计算各班级及格人数:
SELECT class,SUM(CASE WHEN score >= 60 THEN 1 END) AS '及格',SUM(CASE WHEN score < 60 THEN 1 END) AS '不及格' FROM gradeTable GROUP BY class;
或者:
SELECT succ.class,succ.su AS '及格',fail.fa AS '不及格' FROM ( SELECT class,COUNT(1) AS su FROM gradeTable WHERE score >= 60 GROUP BY class ) AS succ, ( SELECT class,COUNT(1) AS fa FROM gradeTable WHERE score < 60 GROUP BY class ) AS fail WHERE succ.class = fail.class;
Console :
啦啦啦
啦啦啦
相关文章
- 【MySql】mysql 数据库数据订正
- 解决远程连接mysql很慢的方法(mysql_connect 打开连接慢)
- connection to dat Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
- linux 卸载mysql
- MySQl的意外断电后无法启动
- MySQL内核月报 2014.10-MySQL· 文件结构·告别frm文件
- PHP连接MySQL数据库的三种方式(mysql、mysqli、pdo)--续
- go连接mysql数据库:原生写法
- mysql常见错误
- MySQL 可以用localhost 连接,但不能用IP连接的问题,局域网192.168.*.* 无法连接mysql
- 上Mysql com.mysql.jdbc.StatementImpl$CancelTask内存泄漏问题和解决方法
- Mysql下Limit注入方法(此方法仅适用于5.0.0<mysql<5.6.6的版本)
- 108.第十九章 MySQL数据库 -- MySQL高可用 Galera Cluster(十八)
- 96.第十九章 MySQL数据库 -- 多表查询(六)
- rpm安装mysql 默认安装目录
- MySQL缺失mysql_config文件
- Mysql的delete . join 语法
- Mysql番外篇--最左原则-03
- 【MySql】MySQL数据库--什么是MySQL的回表 ?