数据库中的行列转换

本文以MySQL为例,介绍了如何进行数据库中的行列转换。首先,通过使用CASE语句将原表结构行转列,展示了如何统计不同商品的销售量。接着,利用UNION操作将已转换的列转回为行,恢复原始表格形式。这两种转换方法为数据库管理和数据分析提供了便利。
摘要由CSDN通过智能技术生成

以mysql数据库为例:
原表结构:
在这里插入图片描述
①行转列(sql语句):
SELECT xsy,
sum( CASE WHEN xscp = ‘牛奶’ THEN xsl ELSE 0 END ) AS 牛奶,
sum( CASE WHEN xscp = ‘苹果汁’ THEN xsl ELSE 0 END ) AS 苹果汁,
sum( CASE WHEN xscp = ‘柳橙汁’ THEN xsl ELSE 0 END ) AS 柳橙汁,
sum( CASE WHEN xscp = ‘巧克力’ THEN xsl ELSE 0 END ) AS 巧克力,
sum( CASE WHEN xscp = ‘牛肉干’ THEN xsl ELSE 0 END ) AS 牛肉干 from xl group by xsy

效果展示(如图):
在这里插入图片描述
②接下来如果你想把上面转化后的表(xlx)在转化回去就是列转化为行了,主要运用union实现,sql语句如下:
SELECT xsy,‘牛奶’ AS xscp,牛奶 AS xsl FROM xlx UNION
SELECT xsy,‘苹果汁’ AS xscp,苹果汁 AS xsl FROM xlx UNION
SELECT xsy,‘柳橙汁’ AS xscp,柳橙汁 AS xsl FROM xlx UNION
SELECT xsy,‘巧克力’ AS xscp,巧克力 AS xsl FROM xlx UNION
SELECT xsy,‘牛肉干’ AS xscp,牛肉干 AS xsl FROM xlx GROUP BY xsy
效果展示(如图):
在这里插入图片描述
以上是最简单的两种行列之间的转换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值