我有这张 table
------------------
1 | 20,00 | A |
2 | 20,00 | A |
3 | 20,00 | A |
4 | 20,00 | A |
1 | 50,00 | B |
2 | 50,00 | B |
3 | 50,00 | B |
4 | 50,00 | B |
我想使用 group by 生成这个。
id | A | B |
----------------------
1 | 20,00 | 50,00 |
2 | 20,00 | 50,00 |
3 | 20,00 | 50,00 |
4 | 20,00 | 50,00 |
你能帮帮我吗?
最佳答案
这是一个标准的数据透视查询:
SELECT t.id,
MAX(CASE WHEN t.col = 'A' THEN t.value ELSE NULL END) AS A,
MAX(CASE WHEN t.col = 'B' THEN t.value ELSE NULL END) AS B
FROM TABLE t
GROUP BY t.id
MySQL 不支持 PIVOT/UNPIVOT 语法。
关于sql - 多于一列的 MySql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3498515/