mysql - SQL:将两行合二为一
问题描述
在 MySQL 上,我想将 2 行合并为 1,例如:
| Name | Value | Res |
| foo | Type | 0.2 |
| foo | Group | aaa |
| bar | Type | 0.3 |
| bar | Group | bbb |
我的预期结果是:
| Name | Type | Group |
| foo | 0.2 | aaa |
| bar | 0.3 | bbb |
我想将两个具有一些常见值的条目合并到一个具有两列的列中,该Res
列的值与列的值不同Type
。我怎样才能做到这一点?谢谢
解决方案
您的预期结果需要做枢轴尝试使用条件聚合函数来实现。
CREATE TABLE T(
Name varchar(50),
Value varchar(50),
Res varchar(50)
);
insert into t values ( 'foo' ,'Type' , '0.2');
insert into t values ( 'foo' ,'Group' , 'aaa');
insert into t values ( 'bar' ,'Type' , '0.3');
insert into t values ( 'bar' ,'Group' , 'bbb');
查询 1:
SELECT Name,
MAX(CASE WHEN Value= 'Type' THEN Res END) Type,
MAX(CASE WHEN Value= 'Group 'THEN Res END) `Group`
FROM T
GROUP BY Name
结果:
| Name | Type | Group |
|------|------|-------|
| bar | 0.3 | bbb |
| foo | 0.2 | aaa |
推荐阅读
- spring-boot - 将弹簧靴与亚马逊 lambda 一起使用是否正确?
- r - 如何从列表中删除重复的向量?
- sql-server - Azure SQL Server VM 和常规 Azure VM 之间的区别
- html - 使用 flexbox 创建方形项目的响应列
- python - 如何在python的子类中并行化进程
- angular - 除了 app.component 之外,没有任何组件在任何路由上呈现
- node.js - 使用 Dockerfile 时,用于生产的 Strapi 构建挂起
- powershell - 返回广告帐户列表并检查是否为组成员
- python - pandas qcut 和 pandas cut 函数不会均匀分布项目数
- php - 使用 Tinymce 编辑器插件、wordpress 输入时从文本中删除所有标签