表的mysql聚合,每行一个值
我有这个源表: source table: ------------------------------ | id | col 1 | col 2 | col n | ------------------------------ | 0 | 1 | NULL | NULL | ------------------------------ | 0 | NULL | 1 | NULL | ------------------------------ | 0 | NULL | NULL | 1 | ------------------------------ | 1 | 1 | NULL | NULL | ------------------------------ | 1 | NULL | NULL | 1 | ------------------------------ 源表: ------------------------------ |id |第1列|第2列|第n列| ------------------------------ |0 | 1 |空|空| ------------------------------ |0 |零| 1 |零| ------------------------------ |0 |零|零| 1| ------------------------------ |1 | 1 |空|空| ------------------------------ |1 |零|零| 1| ------------------------------ 一行中的两列永远不会有值(NULL除外) 现在我需要将其转换到这个目标表: ------------------------------ | id | col 1 | col 2 | col n | ------------------------------ | 0 | 1 | 1 | 1 | ------------------------------ | 1 | 1 | NULL | 1 | ------------------------------ 目标表: ------------------------------ | id | col 1 | col 2 | col n | ------------------------------ | 0 | 1 | 1 | 1 | ------------------------------ | 1 | 1 | NULL | 1 | ------------------------------ ------------------------------ |id |第1列|第2列|第n列| ------------------------------ | 0 | 1 | 1 | 1 | ------------------------------ |1 | 1 |空| 1| ------------------------------ 我被困住了,但我觉得我错过了一些简单的技巧 我真的很感谢你的帮助 使用表的mysql聚合,每行一个值,mysql,aggregation,transpose,Mysql,Aggregation,Transpose,我有这个源表: source table: ------------------------------ | id | col 1 | col 2 | col n | ------------------------------ | 0 | 1 | NULL | NULL | ------------------------------ | 0 | NULL | 1 | NULL | ------------------------------ | 0 | NULL
MAX()
由于要将其插入到目标表中,因此可以简单地构建一个insert
语句,如下所示:
INSERT INTO targetTB (id, col1, col2, coln)
SELECT id,
MAX(col1),
MAX(col2),
MAX(coln)
FROM sourceTB
GROUP BY id
thx 4快速回答。正是我想要的。只是没有想到max的“国外”用法…抱歉打扰了。