加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

论坛上的题目--类似于行列转换的,给出我的方法。

发布时间:2020-12-12 12:42:20 所属栏目:MsSql教程 来源:网络整理
导读:论坛上的题目: 现在有表如下 学生姓名 选课科目 张三 语文 李四 英语 张三 数学 王五 政治 张三 体育 张三 美术 李四 语文 张三 英语 要求得如下结果 学生姓名??????????????选了语文数学英语的科目数量???????????????选了所有课程的科目数量 张三????????

论坛上的题目:

现在有表如下
学生姓名 选课科目
张三 语文
李四 英语
张三 数学
王五 政治
张三 体育
张三 美术
李四 语文
张三 英语

要求得如下结果
学生姓名??????????????选了语文数学英语的科目数量???????????????选了所有课程的科目数量
张三??????????????????????????????????????????????3??????????????????????????????????????????????????????????????5
李四??????????????????????????????????????????????2??????????????????????????????????????????????????????????????2
王五??????????????????????????????????????????????0??????????????????????????????????????????????????????????????1

个人觉得,类似于行列转换的写法

;with?ta(stu_name,stu_subject)??as

(
select?'Jim','Chinese'
union
select?'Tom','English'
union?
select?'Anna','political'

)
select?stu_name,sum(case?when?stu_subject?
in('Chinese','English','Math')?then?1?else?0?end?)?as?countofenglishchinesemath,
sum(case?when?stu_subject?is?not?null?then?1?else?0?end)?as?allsubjects?
from?ta?group?by?stu_name

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读