美文网首页程序员
将表列内容横向展示

将表列内容横向展示

作者: 低至一折起 | 来源:发表于2017-12-05 16:57 被阅读0次

表结构:

姓名 课程 分数
张三 语文 74
张三 数学 83
张三 物理 93
李四 语文 74
李四 数学 84
李四 物理 94

转化结果:

姓名 语文 数学 物理 平均分 总分
张三 74 83 93 83.33 250
李四 74 84 94 84.00 252

sql实现:

SELECT
    t.student AS '姓名',
    max(
        CASE
        WHEN course_name = '语文' THEN
            '分数'
        ELSE
            0
        END
    ) AS '语文',
    max(
        CASE
        WHEN course_name = '数学' THEN
            '分数'
        ELSE
            0
        END
    ) AS '数学',
    max(
        CASE
        WHEN course_name = '物理 ' THEN
            '分数'
        ELSE
            0
        END
    ) AS '物理 ',
    cast(avg(t.score) as decimal(18,2)) AS '平均分',
    sum(t.score) AS '总分'
FROM
    course t
GROUP BY
    t.student

相关文章

网友评论

    本文标题:将表列内容横向展示

    本文链接:https://www.haomeiwen.com/subject/tvpcixtx.html