我加入了两个表并获得了一个结果集,该结果集具有相同 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中完成?
很感谢任何形式的帮助。谢谢。
您可以使用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从您的示例中使用,但您可以使用任何一种,具体取决于您的目标。