行列转换

本文通过一个具体的SQL案例,展示了如何使用CASE语句进行多条件的数据聚合,特别针对不同类别在不同日期的销售数据进行最大值的提取,适用于数据库管理和数据分析领域的读者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SELECT 列 ,MAX(CASE 列名1 WHEN '某个值' THEN 列名2 ELSE 0 END )别名 FROM 表名 GROUP BY 列;

列子:

CREATE TABLE TabName (
Id int(11) NOT NULL,
Name varchar(20) DEFAULT NULL,
Date date DEFAULT NULL,
Scount int(11) DEFAULT NULL
);

INSERT INTO `TabName` VALUES ('1', '小说', '2013-09-01', '10000');
INSERT INTO `TabName` VALUES ('2', '微信', '2013-09-01', '20000');
INSERT INTO `TabName` VALUES ('3', '小说', '2013-09-02', '30000');
INSERT INTO `TabName` VALUES ('4', '微信', '2013-09-02', '35000');
INSERT INTO `TabName` VALUES ('5', '小说', '2013-09-03', '31000');
INSERT INTO `TabName` VALUES ('6', '微信', '2013-09-03', '36000');
INSERT INTO `TabName` VALUES ('7', '小说', '2013-09-04', '35000');
INSERT INTO `TabName` VALUES ('8', '微信', '2013-09-04', '38000');

SELECT * FROM `TabName`;

SELECT Date ,MAX(CASE NAME WHEN '小说' THEN Scount ELSE 0 END ) 小说,MAX(CASE NAME WHEN '微信' THEN Scount ELSE 0 END ) 微信 FROM TabName GROUP BY Date;

转载于:https://www.cnblogs.com/colos/p/9961699.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值