将具有相同 id 但不同列值的两行合并为一行 [mysql]

Azi*_*ima 2 mysql sql

我加入了两个表并获得了一个结果集,该结果集具有相同 ID 或类型的不同行,但它们具有不同的列值。

例如。

leave_type  |  max Days  |  jan  |  feb  |  mar  |  apr
Personal    |  12        |  0.00 |  0.00 |  2.00 |  0.00
Personal    |  12        |  1.00 |  0.00 |  0.00 |  0.00
Sick        |  5         |  0.00 |  0.00 |  1.00 |  0.00
Run Code Online (Sandbox Code Playgroud)

我希望结果如下:

leave_type  |  max Days  |  jan  |  feb  |  mar  |  apr
Personal    |  12        |  1.00 |  0.00 |  2.00 |  0.00
Sick        |  5         |  0.00 |  0.00 |  1.00 |  0.00
Run Code Online (Sandbox Code Playgroud)

这如何在mysql中完成?

很感谢任何形式的帮助。谢谢。

kch*_*son 5

您可以使用GROUP BY和聚合函数。

SELECT
    `leave_type`,
    MAX(`days`) AS `max_days`,
    MAX(`jan`) AS `jan`,
    MAX(`feb`) AS `feb`,
    MAX(`mar`) AS `mar`,
    MAX(`apr`) AS `apr`
FROM
    `table`
GROUP BY
    `leave_type`
Run Code Online (Sandbox Code Playgroud)

不清楚您是要使用MAX还是SUM从您的示例中使用,但您可以使用任何一种,具体取决于您的目标。