Mysql如何按列合并表数据
Mysql如何按列合并表数据,mysql,sql,Mysql,Sql,分组依据对此不起作用 我有这个: ----------------- name col1 col2 ----------------- a null 1 b null 3 a 3 null b 4 null 我需要这个结果: ----------------- name col1 col2 ----------------- a 3 1 b 4 3 我想说,groupby在这里是完美的: select
分组依据
对此不起作用
我有这个:
-----------------
name col1 col2
-----------------
a null 1
b null 3
a 3 null
b 4 null
我需要这个结果:
-----------------
name col1 col2
-----------------
a 3 1
b 4 3
我想说,
groupby
在这里是完美的:
select name, max(col1) col1, max(col2) col2
from tablename
group by name
使用
MAX
消除空值,然后使用groupby
功能
SELECT name, MAX(col1) AS col1, MAX(col2) AS col2
FROM yourtable
GROUP BY name
输出:
name col1 col2
a 3 1
b 4 3
既然你说,groupby
对此不起作用,我假设这是一个更大查询的一部分,也许可以使用子查询来获得结果
SELECT t.name,
(SELECT MAX(ta.col1) FROM yourtable ta WHERE ta.name = t.name) AS col1,
(SELECT MAX(tb.col2) FROM yourtable tb WHERE tb.name = t.name) AS col2
FROM yourtable t
GROUP BY t.name
从表组中按名称选择名称、最大值(col1)、最大值(col2)
如果还有另一行(a、5、5)?如何更改结果?以及行(c,1,2)?不,我没有(a,5,5),因为此表是两个表并集的结果