Что у меня есть: стол
_______________________________________
| MachUUID | State| Pass | Fail |
|--------------------------------------
| 1234 | A | 0.2 | 0.98 |
| 1234 | B | 0.5 | 0.5 |
| 1234 | C | 0.8 | 0.2 |
---------------------------------------
Что я хочу : transformed_table
| MachUUID | A_Pass | A_Fail | B_Pass | B_Fail | C_Pass | C_Fail
--------------------------------------------------------------
| 1234 | 0.2 | 0.98 | 0.5 | 0.5 | 0.8 | 0.2
Количество состояний (A, B и т. Д. Фиксировано). На данный момент их до 20. Таким образом, чтобы преобразовать это
Что я делаю :
Transformed_Table AS (
SELECT MachUUID, Pass AS A_Pass, Fail AS A_Fail
FROM table
WHERE State = 'A'
UNION ALL
SELECT MachUUID, Pass AS B_Pass, Fail AS B_Fail
FROM table
WHERE State = 'B'
UNION ALL
SELECT MachUUID, Pass AS C_Pass, Fail AS C_Fail
FROM table
WHERE State = 'C')
Однако, это возвращает странный союз, который выглядит примерно так:
Я получаю ошибочный вывод
| MachUUID | A_Pass| A_Fail |
| 1234 | 0.2 | 0.98 |
| 1234 | 0.5 | 0.5 |
| 1234 | 0.8 | 0.2 |
Вопрос
Я думаю, что мое понимание единства на данном этапе неверно. Я понимаю внешние соединения и мне интересно, если это лучший способ сделать это.
Я открыт для предложений о других способах решения этой проблемы