查询将垂直更改为水平

Sad*_*diq 5 sql database sql-server pivot

我有一个表 Machine_Mode_Duration:

在此输入图像描述

我需要一个查询,以便它显示如下:

在此输入图像描述

感谢建议!

Dan*_*ing 4

你需要一个GROUP BY

假设您正好有 3 种模式,并且在出现重复元(Machine_id, INTERNAL_MODES)组的情况下,可以将它们相加INTERNAL_MODE_DURATION

SELECT
    Machine_Id,
    SUM(CASE WHEN INTERNAL_MODES = 1 THEN INTERNAL_MODE_DURATION ELSE 0 END) AS Mode_1,
    SUM(CASE WHEN INTERNAL_MODES = 2 THEN INTERNAL_MODE_DURATION ELSE 0 END) AS Mode_2,
    SUM(CASE WHEN INTERNAL_MODES = 3 THEN INTERNAL_MODE_DURATION ELSE 0 END) AS Mode_3
FROM t
GROUP BY
    Machine_Id;
Run Code Online (Sandbox Code Playgroud)