表的mysql聚合,每行一个值

表的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

我有这个源表:

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| ------------------------------ 我被困住了,但我觉得我错过了一些简单的技巧

我真的很感谢你的帮助

使用
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的“国外”用法…抱歉打扰了。