mysql - 数据库行需要包含列

标签 mysql

我有一个下面的 MySQL 表。

id       Creation_Date         Goals  Alternative    Value
-----------------------------------------------------------
1   2014-04-17 10:09:30     G1      A        0.86
2   2014-04-17 10:09:30     G1      B        0.87
3   2014-04-17 10:09:30     G2      A        0.5
4   2014-04-17 10:09:30     G2      B         0

我需要一个 MySQL 查询来更改列中的行,并且还需要它们各自的值,如下所示。

**输出要求**

Alternative     G1         G2  
------------------------------- 
   A           0.86        0.50
   B           0.87        0

尝试过的解决方案:

我尝试了以下查询

select Alternative , max(case when Goals = 'G1' then round(value,2) end) as Goal1, max(case when Goals = 'G2' then round(value,2) end) as Goal2 from sgwebdb.dim_module group by id ; 

但这没有给出所需的输出,这给出了以下输出

Alternative     G1         G2  
------------------------------- 
   A         0.86         Null
   B         0.87         Null
   A     Null         0.50
   B     Null         0.00

最佳答案

尝试这个查询:

SELECT Alternative,
SUM(Val*(1-ABS(SIGN(Goals-1)))) AS G1,
SUM(Val*(1-ABS(SIGN(Goals-2)))) AS G2
FROM table1 
GROUP BY Alternative;

表格如下所示:将G1更改为1并将G2更改为2

id       Creation_Date     Goals  Alternative    Value
-----------------------------------------------------------
1    2014-04-17 10:09:30       1        A             0.86
2    2014-04-17 10:09:30       1        B             0.87
3    2014-04-17 10:09:30       2        A             0.5
4    2014-04-17 10:09:30       2        B             0

结果如下:

Alternative     G1         G2  
------------------------------- 
   A           0.86        0.50
   B           0.87        0

关于mysql - 数据库行需要包含列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23124436/

相关文章:

mysql - 数十亿行 mysql 表/cassandra 模型-(以及一些生物学知识 :))

python - mysql varchar(255) 只存储小数点后 4 位的数字,为什么?

mysql - 仅在 MySQL 中插入缺失数据

php - 分页以显示最大值并限制其余值

asp.net 编译错误 (mysql.data)

php - MySql 查询在非常大的表上变慢

PHP CodeIgniter - 当关系表(不同表中有相同的列名)时如何获得良好的结果数组

php - 使用 PHP 和 MYSQL 创建登录脚本

python - 如何从单个 Flask 路由执行两个 SQL 命令

mysql - 在 blob 中存储数据与存储指向文件的指针之间有什么区别?