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

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

概述论坛上的题目: 现在有表如下 学生姓名 选课科目 张三 语文 李四 英语 张三 数学 王五 政治 张三 体育 张三 美术 李四 语文 张三 英语 要求得如下结果 学生姓名              选了语文数学英语的科目数量               选了所有课程的科目数量 张三                                              3            

论坛上的题目:

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

要求得如下结果
学生姓名              选了语文数学英语的科目数量               选了所有课程的科目数量
张三                                              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

总结

以上是内存溢出为你收集整理的论坛上的题目--类似于行列转换的,给出我的方法。全部内容,希望文章能够帮你解决论坛上的题目--类似于行列转换的,给出我的方法。所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1160056.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存