也许这确实是一个简单的问题,提前致谢。
我目前拥有的:
+-----+---+---+---+---+
| sid | a | b | c | d |
+-----+---+---+---+---+
| 123 | | | | 4 |
| 123 | | 2 | | |
| 123 | | | 3 | |
| 123 | 1 | | | |
| 456 | | 5 | | |
| 456 | | | 6 | |
| 789 | | | | 8 |
| 789 | 7 | | | |
+-----+---+---+---+---+
我想要得到什么:
+-----+------+------+------+------+
| sid | a | b | c | d |
+-----+------+------+------+------+
| 123 | 1 | 2 | 3 | 4 |
| 456 | | 5 | 6 | |
| 789 | 7 | | | 8 |
+-----+------+------+------+------+
如何在 MySQL 中完成这样的“行串联”?
最佳答案
您可以通过查询中的 GROUP BY
子句使用 MAX()
聚合函数来执行此操作。
SELECT sid, MAX(a), MAX(b), MAX(c), MAX(d)
FROM table
GROUP BY sid
我使用了MAX()
,因为它会用其他值过滤 NULL 值。
更多解释在这里:MySQL Documentation
关于MySQL:行串联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55087676/