首页 > 解决方案 > 将具有相同值的多行分组mysql

问题描述

我有一个特定的结果集,我需要在 userId 上将它们组合在一起。

例如

userId  2019-01-15  2019-01-16
------------------------------
132     0           30_140
132     30_140      0

所需输出:

userId  2019-01-15  2019-01-16
------------------------------
132     30_140      30_140

由于值包含非数字字符,因此 SUM 不起作用。

标签: mysqlsqlgroup-by

解决方案


如果空值是全部0,或者NULL您可以使用MAX

SELECT userID, MAX(`2019-01-15`) AS `2019-01-15`, MAX(`2019-01-16`) AS `2019-01-16`
FROM test
GROUP BY userID

输出:

userID  2019-01-15  2019-01-16
132     30_140      30_140

dbfiddle 上的演示


推荐阅读