mysql - 根据上一列添加另一个不同的列
问题描述
假设我在数据库中有一个这样的表
Name Day VALUE1 VALUE2
========================
A mon 1 2
A fri 2 2
我想要它喜欢
Name VALUE1(mon) VALUE2(mon) VALUE1(fri) VALUE2(fri)
=====================================================
A 1 2 2 2
我可以做这样的东西吗?如果可以的话,请告诉我如何用查询来做这个
解决方案
您可以使用数据透视查询:
SELECT
Name,
MAX(CASE WHEN DAY = 'mon' THEN VALUE1 END) AS "Value1(mon)",
MAX(CASE WHEN DAY = 'mon' THEN VALUE2 END) AS "Value2(mon)",
MAX(CASE WHEN DAY = 'fri' THEN VALUE1 END) AS "Value1(fri)",
MAX(CASE WHEN DAY = 'fri' THEN VALUE2 END) AS "Value2(fri)"
FROM yourTable
GROUP BY Name;
推荐阅读
- android - 在设备上安装时执行缩小版本发布后应用程序崩溃
- php - cURL 错误 28 即使 API 端工作,主机不接收数据?
- python - 如何旋转玩家移动?
- c# - JSON解析数组C#
- typescript - 如何使用变量的内容作为键值对中的键使用 Typescript Firebase Cloud Functions 更新数据库
- javascript - 如何获取 buttonClick this.id 以动态映射方法
- r - 逻辑回归的交叉验证和套索正则化错误
- r - 如何从 R 访问网页
- python - Python 函数返回无。不太明白为什么
- amazon-web-services - 使用 aws mediaconvert 向视频添加多个图像