좀 길기는 하지만 다음과 같이 테이블에 저장되어 있습니다.
| mesDate | type(varchar) | content | status |
| 2023-02-12 | 0 | hp1 | NG |
| 2023-02-12 | 0 | hp2 | OK |
| 2023-02-12 | 0 | st1 | OK |
| 2023-02-12 | 0 | st2 | OK |
| 2023-02-12 | 1 | e1 | OK |
| 2023-02-12 | 1 | h1 | OK |
| 2023-02-12 | 1 | h2 | NG |
| 2023-02-12 | 1 | h3 | OK |
| 2023-02-12 | 1 | w1 | OK |
| 2023-02-12 | 2 | e1 | OK |
| 2023-02-12 | 2 | h1 | OK |
| 2023-02-12 | 2 | h2 | OK |
| 2023-02-12 | 2 | h3 | OK |
| 2023-02-12 | 2 | w1 | OK |
| 2023-02-13 | 0 | hp1 | OK |
| 2023-02-13 | 0 | hp2 | OK |
| 2023-02-13 | 0 | st1 | OK |
| 2023-02-13 | 0 | st2 | OK |
| 2023-02-13 | 1 | e1 | OK |
| 2023-02-13 | 1 | h1 | OK |
| 2023-02-13 | 1 | h2 | OK |
| 2023-02-13 | 1 | h3 | OK |
| 2023-02-13 | 1 | w1 | OK |
| 2023-02-13 | 2 | e1 | OK |
| 2023-02-13 | 2 | h1 | OK |
| 2023-02-13 | 2 | h2 | OK |
| 2023-02-13 | 2 | h3 | OK |
| 2023-02-13 | 2 | w1 | OK |
| 2023-02-14 | 0 | hp1 | OK |
| 2023-02-14 | 0 | hp2 | OK |
| 2023-02-14 | 0 | st1 | OK |
| 2023-02-14 | 0 | st2 | OK |
| 2023-02-14 | 1 | e1 | OK |
| 2023-02-14 | 1 | h1 | OK |
| 2023-02-14 | 1 | h2 | OK |
| 2023-02-14 | 1 | h3 | OK |
| 2023-02-14 | 1 | w1 | OK |
| 2023-02-14 | 2 | e1 | OK |
| 2023-02-14 | 2 | h1 | OK |
| 2023-02-14 | 2 | h2 | OK |
| 2023-02-14 | 2 | h3 | OK |
| 2023-02-14 | 2 | w1 | OK |
| 2023-02-15 | 0 | hp1 | OK |
| 2023-02-15 | 0 | hp2 | OK |
| 2023-02-15 | 0 | st1 | NG |
| 2023-02-15 | 0 | st2 | OK |
| 2023-02-15 | 1 | e1 | OK |
| 2023-02-15 | 1 | h1 | OK |
| 2023-02-15 | 1 | h2 | OK |
| 2023-02-15 | 1 | h3 | OK |
| 2023-02-15 | 1 | w1 | OK |
| 2023-02-15 | 2 | e1 | OK |
| 2023-02-15 | 2 | h1 | OK |
| 2023-02-15 | 2 | h2 | OK |
| 2023-02-15 | 2 | h3 | OK |
| 2023-02-15 | 2 | w1 | OK |
제가 변경하고 싶은 결과는 다음과 같습니다.
| mesDate | 0_hp1 | 0_hp2 | 0_st1 | 0_st2 | 1_e1 | 1_h1 | 1_h2 | 1_h3 | 1_w1 | 2_e1 | 2_h1 | 2_h2 | 2_h3 | 2_w1 |
| 2023-02-12 | NG | OK | OK | OK | OK | OK | NG | OK | OK | OK | OK | OK | OK | OK |
| 2023-02-13 | OK | OK | OK | OK | OK | OK | OK | OK | OK | OK | OK | OK | OK | OK |
| 2023-02-14 | OK | OK | OK | OK | OK | OK | OK | OK | OK | OK | OK | OK | OK | OK |
| 2023-02-15 | OK | OK | NG | OK | OK | OK | OK | OK | OK | OK | OK | OK | OK | OK |
이렇게 변경하려면 query를 어떻게 작성해야 할까요?
도저희 떠오르지 않아 이렇게 질문드립니다.
감사합니다.
SELECT mesDate
, MIN(CASE WHEN type = '0' AND content = 'hp1' THEN status END) "0_hp1"
, MIN(CASE WHEN type = '0' AND content = 'hp2' THEN status END) "0_hp2"
, MIN(CASE WHEN type = '0' AND content = 'st1' THEN status END) "0_st1"
, MIN(CASE WHEN type = '0' AND content = 'st2' THEN status END) "0_st2"
, MIN(CASE WHEN type = '1' AND content = 'e1' THEN status END) "1_e1"
, MIN(CASE WHEN type = '1' AND content = 'h1' THEN status END) "1_h1"
, MIN(CASE WHEN type = '1' AND content = 'h2' THEN status END) "1_h2"
, MIN(CASE WHEN type = '1' AND content = 'h3' THEN status END) "1_h3"
, MIN(CASE WHEN type = '1' AND content = 'w1' THEN status END) "1_w1"
, MIN(CASE WHEN type = '2' AND content = 'e1' THEN status END) "2_e1"
, MIN(CASE WHEN type = '2' AND content = 'h1' THEN status END) "2_h1"
, MIN(CASE WHEN type = '2' AND content = 'h2' THEN status END) "2_h2"
, MIN(CASE WHEN type = '2' AND content = 'h3' THEN status END) "2_h3"
, MIN(CASE WHEN type = '2' AND content = 'w1' THEN status END) "2_w1"
FROM t
GROUP BY mesDate
;
SELECT mesDate
, MIN(CASE x WHEN '0_hp1' THEN s END) "0_hp1"
, MIN(CASE x WHEN '0_hp2' THEN s END) "0_hp2"
, MIN(CASE x WHEN '0_st1' THEN s END) "0_st1"
, MIN(CASE x WHEN '0_st2' THEN s END) "0_st2"
, MIN(CASE x WHEN '1_e1' THEN s END) "1_e1"
, MIN(CASE x WHEN '1_h1' THEN s END) "1_h1"
, MIN(CASE x WHEN '1_h2' THEN s END) "1_h2"
, MIN(CASE x WHEN '1_h3' THEN s END) "1_h3"
, MIN(CASE x WHEN '1_w1' THEN s END) "1_w1"
, MIN(CASE x WHEN '2_e1' THEN s END) "2_e1"
, MIN(CASE x WHEN '2_h1' THEN s END) "2_h1"
, MIN(CASE x WHEN '2_h2' THEN s END) "2_h2"
, MIN(CASE x WHEN '2_h3' THEN s END) "2_h3"
, MIN(CASE x WHEN '2_w1' THEN s END) "2_w1"
FROM (SELECT mesDate
, CONCAT(type, '_', content) x
, status s
FROM t
) a
GROUP BY mesDate
;
마농님 또 감사드립니다.
마농님의 능력이 부럽습니다 ^^;