如何在mysql中合并行?

时间:2017-05-19 09:23:58

标签: mysql sql

在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|

2 个答案:

答案 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以满足您的输出需求。