MySQL 行转列的方法
生活随笔
收集整理的這篇文章主要介紹了
MySQL 行转列的方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
建表
CREATE TABLE `score` (`Id` int(11) NOT NULL AUTO_INCREMENT,`UserName` varchar(50) DEFAULT NULL,`Subject` varchar(50) DEFAULT NULL,`Source` decimal(18,0) DEFAULT NULL,PRIMARY KEY (`Id`) ) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;測試數據
INSERT INTO `score` VALUES (1,'張三','語文',85),(2,'李四','數學',89),(3,'王五','英語',95),(4,'王六','語文',67),(5,'王七','語文',78),(6,'張三','數學',100),(7,'張三','英語',99),(8,'李四','語文',79),(9,'李四','英語',80),(10,'王五','語文',88),(11,'王五','數學',87),(12,'王六','數學',68),(13,'王六','英語',78),(14,'王七','數學',69),(15,'王七','英語',79);行轉列
靜態行轉列
select UserName 姓名, sum(case Subject when '語文' then Source else 0 end) 語文, sum(case Subject when '數學' then Source else 0 end) 數學, sum(case Subject when '英語' then Source else 0 end) 英語 from score group by UserName總結
以上是生活随笔為你收集整理的MySQL 行转列的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL调优(六):分区设计,分区优化
- 下一篇: 多线程与高并发(九):单机压测工具JMH