mysql - SQL 查询比较同一列中但由两组不同查询返回的两个值

标签 mysql sql

我有一张类似于下图所示的表格。

-----------------------------
JOB ID | parameter | result |
-----------------------------
1       | xyz      | 10     |
1       | abc      | 15     |
2       | xyz      | 12     |
2       | abc      | 8      |
2       | mno      | 20     |
-----------------------------

我想要如下所示的结果。

 parameter | result 1 | result 2 |
----------------------------------
   xyz     |  10      |  12      |
   mno     |  NULL    |  20      |
   abc     |  15      |  8       |
----------------------------------

我的目标是拥有一个可以比较两个不同作业的结果值的表。它可以是两个或多个工作。

最佳答案

你想模拟一个数据透视表,因为 mysql 没有数据透视表。

select 
    param, 
    max(case when id = 1 then res else null end) as 'result 1',
    max(case when id = 2 then res else null end) as 'result 2'
from table
group by param

SQL FIDDLE TO PLAY WITH

关于mysql - SQL 查询比较同一列中但由两组不同查询返回的两个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36900744/

相关文章:

mysql - SQL 错误 1452 : Cannot add or update child row

php - MySQL 查询在 PHP 中使用时返回空结果,但在 MySQL 客户端中完美运行

php - 状态更改时使用订单数量更新产品数量的sql查询

php - UTF-8贯穿始终

mysql - 如何从 fabric 动态创建 mysql 数据库

SQL连接问题

mysql - 在 Nodejs/Express 应用程序中使用 Sequelize 查询多对多

Python+mysql - 在for循环中构建插入语句

sql - 如果路径键在变量 postgresql 中,如何更新 jsonb 值

sql - 用于逆透视的存储过程