相关疑难解决方法(0)

SQL - 不同类别的列

我是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)

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

sql sqlite pivot

12
推荐指数
1
解决办法
3907
查看次数

SQLITE 将大量行转置为列

我有一个这样订购的数据库:

    ID     |    Subject     |      Value
 ---------------------------------------------
     1            Subj1            Val1
     1            Subj2            Val2
     2            Subj1            Val3
     2            Subj5            Val4
Run Code Online (Sandbox Code Playgroud)

等等。ID 数以千计,受试者数以万计。

我想找到这个矩阵的转置。我怎么做?

如果主题是一个小的静态集,那么我可以使用 CASE 语句,如以下解决方案所示:SQLITE - transpose rows into columnsproperly,但在我的情况下,主题是一个大的动态集,所以 CASE 将无法工作,除非我正在数据库外部的某些应用程序中动态构建 SQL。就我而言,没有“应用程序”;正如我在下面的评论中提到的,我正在寻找一个纯 SQL 解决方案。

问题是:我正在使用 SQLite,它缺少 PIVOT 语句,这将使这变得更容易。我不知道是否还有办法做到这一点,并且没有学到太多过去的连接类型。对于较小的数据库,我会尝试一系列左连接,但由于结果中有很多列值,我不知道如何操作。

如何转换成这种形式?

      ID      |     Subj1       |        Subj2      |    Subj3     |       etc.
   --------------------------------------------------------------------
      1              Val1                  Val2            0        
      2              Val3                   0              0 
Run Code Online (Sandbox Code Playgroud)

sqlite pivot

5
推荐指数
1
解决办法
1980
查看次数

标签 统计

pivot ×2

sqlite ×2

sql ×1