在MySQL中我想将信息合并到一行中,我们有以下场景:
数据
uid |date |cl |m |
149 |2017-03-19 |NULL |14.2857|
149 |2017-03-19 |46.1538 |NULL |
在上表中,我有相同的 uid 和日期的相关信息,我想将它们合并为一行,如下所示。
合并信息
uid |date |cl |m |
149 |2017-03-19 |46.1538 |14.2857|
答案 0 :(得分:1)
您可以执行以下操作:
SELECT t.uid,
t.date,
MAX(t.cl) AS cl,
MAX(t.m) AS m
FROM TableName t
GROUP BY t.date,
t.uid
你可以在这里看到 - > http://rextester.com/OROY60007
编辑:如果要将NULL
表示为0,则可以使用SQL中的ISNULL
函数。这将导致当前查询的一个非常小的变化:
SELECT t.uid,
t.date,
ISNULL(MAX(t.cl), 0) AS cl,
ISNULL(MAX(t.m), 0) AS m
FROM TableName t
GROUP BY t.date,
t.uid
希望这有帮助!!!
答案 1 :(得分:0)
使用GROUP BY
。
假设您的日期与您的日期一样独特:
SELECT uid, date, MAX(cl) AS cl, MAX(m) AS m
FROM yourtable
GROUP BY uid, date
如果没有,那么:
SELECT uid, MAX(date), MAX(cl) AS cl, MAX(m) AS m
FROM yourtable
GROUP BY uid
调整MIN
/ MAX
以满足您的输出需求。