SQL - 不同类别的列

Mik*_*tos 12 sql sqlite pivot

我是SQL的新手.我有一个包含不同考试数据的数据库,例如:

Student Test Grade
--------------------
St1    T1   A
St2    T1   B
St3    T1   B
St1    T2   B
St2    T2   B
St3    T2   A
St1    T3   A
St2    T3   C
St3    T3   B
Run Code Online (Sandbox Code Playgroud)

然后,我想使用测试(T1,T2和T3)作为列打印报告:

Student  T1   T2   T3
----------------------
St1      A    B    A
St2      B    B    C
St3      B    A    B
Run Code Online (Sandbox Code Playgroud)

我尝试了不同的东西,但我不知道如何制作这样的打印输出.任何帮助表示赞赏!

OMG*_*ies 11

使用:

  SELECT t.student,
         MAX(CASE WHEN t.test = 'T1' THEN t.grade END) AS T1,
         MAX(CASE WHEN t.test = 'T2' THEN t.grade END) AS T2,
         MAX(CASE WHEN t.test = 'T3' THEN t.grade END) AS T3
    FROM TABLE t
GROUP BY t.student
Run Code Online (Sandbox Code Playgroud)