我在mysql中有一张表,如下图1所示:



您能告诉我如何进行选择查询吗,其结果将如图2所示
并选择更快:

最佳答案

假设您对STUD_ID,CLASS,LESSON有唯一的约束

SELECT STUD_ID,
       CLASS,
        MAX(CASE WHEN LESSON='MATH' THEN MARK END) AS MATH,
        MAX(CASE WHEN LESSON='CHEM' THEN MARK END) AS CHEM,

        ...
        AVG(MARK) AS `Avg`
GROUP BY STUD_ID, CLASS


(如果您确实需要与任何ID不相关的ID列,则可以使用the technique from here)。

09-09 22:35