gpt4 book ai didi

MySQL:根据列值将数据从多行移动到一行

转载 作者:行者123 更新时间:2023-11-29 07:06:04 25 4
gpt4 key购买 nike

我有以下格式的 MySQL 表。这是我运行的程序的输出,我无法更改它。

+---+------------------------+
| | A B C D E |
+---+------------------------+
| | model amz wmt abt tgt |
| 1 | c3000 100 |
| 2 | c3000 200 |
| 3 | c3000 150 |
| 4 | c3000 125 |
| 5 | A1234 135 |
| 6 | A1234 105 |
+---+------------------------+

我想根据第 1 列(即模型)中的值将所有行移动到一行中。需要注意的是,空白行实际上并不是空白,并且包含空字符

期望的输出:

+---+-----------------------+
| | A B C D E |
+---+-----------------------+
| | model amz wmt abt tgt |
| 1 | c3000 100 200 150 125 |
| 2 | A1234 200 105 135 |
+---+-----------------------+

我尝试使用

select model,group_concat(wmt),group_concat(amz)     
from table_name
group by model

我得到的输出充满了逗号

+---+----------------------------------+
| | A B |
+---+----------------------------------+
| | model amz wmt |
| 1 | c3000 ,,,,100,,,, ,,,200,,,, |
| 2 | A1234 ,,200,,,,,, ,105,,,,,, |
+---+----------------------------------+

最佳答案

您可以使用 TRIM 和 IF 将空白值转换为 null。

SELECT 
model,
GROUP_CONCAT(IF(TRIM(wmt) = '', NULL, wmt)),
GROUP_CONCAT(IF(TRIM(amz) = '', NULL, amz))
FROM
table_name
GROUP BY model

关于MySQL:根据列值将数据从多行移动到一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41598105/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com