【问题标题】:Categorise data by using group by in SQL在 SQL 中使用 group by 对数据进行分类
【发布时间】:2012-05-07 04:34:39
【问题描述】:

我有一个类似于链接SQL - columns for different categories 中发布的问题的疑问。我有学生表,其中包含学生姓名、期中成绩和期末成绩,如下面的成绩表所示。

StName  MidTermGrade    FinalGrade
St1         1               1
St2         2               1
St3         2               3
St4         1               3
St5         1               1
St6         2               3
St7         2               2
St8         1               1
St9         2               2
St10        2               3
St11        3               1
St12        2               1
St13        3               3
St14        3               2
St15        1               2

需要使用 SQL 查询对这些数据进行分类以生成输出,以便所有评分和学生姓名都属于一个查询输出,我可以将其粘贴到 word/excel 中并作为报告提供。

FinalGrade  MidTermGrade1   MidTermGrade2   MidTermGrade3
   1        St1             St2             St11
   1        St5             St12    
   1        St8     
   2        St15            St7             St14
   2                        St9 
   3        St4             St3             St13
   3        St6 
   3                        St10    

请帮助并告知是否可以实现。

【问题讨论】:

  • 您使用的是什么类型的数据库? mysql,MSSQL..?
  • 我不明白。该列显示 midtermgrade1,但它似乎包含一个学生姓名。你能更好地描述你想要什么吗?
  • 基本思想是根据学生获得的成绩进行行和列分组。因此,最终结果将是最终评分(行)V/s 中期评分(列)的矩阵,学生姓名放置在相应的单元格中。我不确定这种分组是否可以在 SQL 中完成。请指教。

标签: sql


【解决方案1】:

不要认为得到你需要的东西很容易/可能,但也许这已经足够了:

select FinalGrade, MidtermGrade, group_concat(StName) from GradeTable group by FinalGrade, MidtermGrade;

那么你就可以用代码轻松完成剩下的工作了..?

【讨论】:

    猜你喜欢
    • 2015-07-03
    • 2020-08-19
    • 2021-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多