Pivot table with non-cardinal values

前端 未结 2 951
难免孤独
难免孤独 2020-12-12 07:47

I have a table that looks like

Test   Reader    Result
1      John      1.6
1      Jack      5.2
2      Ursula    2.5
3      Albert    3.0
2      Jack      5         


        
2条回答
  •  青春惊慌失措
    2020-12-12 08:17

    See my comment above. I tried to convert for your table (T1):

     WITH TX AS (SELECT TEST, READER, RESULT, ROW_NUMBER() OVER (PARTITION BY TEST ORDER BY READER) AS RN
                FROM T1
                )
    SELECT T0.TEST
        , TT1.READER AS READER_1
        , TT1.RESULT AS RESULT_1
        , TT2.READER AS READER_2
        , TT2.RESULT AS RESULT_2
        , TT3.READER AS READER_3
        , TT3.RESULT AS RESULT_3
    FROM (SELECT DISTINCT TEST FROM T1) AS T0
    LEFT JOIN TX TT1 ON T0.TEST = TT1.TEST AND TT1.RN=1
    LEFT JOIN TX TT2 ON T0.TEST = TT2.TEST AND TT2.RN=2
    LEFT JOIN TX TT3 ON T0.TEST = TT3.TEST AND TT3.RN=3;
    

提交回复
热议问题