博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
论坛上的题目--类似于行列转换的,给出我的方法。
阅读量:4963 次
发布时间:2019-06-12

本文共 675 字,大约阅读时间需要 2 分钟。

论坛上的题目:

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

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

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

;with ta(stu_name,stu_subject)  as

(
select 'Jim','Chinese'
union
select 'Tom','English'
union
select 'Jim','Math'
union 
select 'Anna','political'
union
select 'Jim','PE'
union 
select 'Jim','Art'
union 
select 'Tom','Chinese'
union
select 'Jim','English'
)
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://www.cnblogs.com/Frank99/p/5400016.html

你可能感兴趣的文章
P3414 SAC#1 - 组合数
查看>>
网络变编程 Socket
查看>>
硕士生和博士生应该如何选导师?
查看>>
zookper
查看>>
面向对象的设计原则
查看>>
spiral-matrix-ii &i 生成顺时针序列
查看>>
文件下载及header方法介绍
查看>>
系统相册的调用,和相机的调用
查看>>
Delphi 实现数字转大写
查看>>
Swift - 使用NSNotificationCenter发送通知,接收通知
查看>>
求方差
查看>>
Java发送HTTPS请求
查看>>
Docker 运维高级应用管理
查看>>
AJAX与Jqurey实现AJAX
查看>>
常用正则表达式大全——包括校验数字、字符、一些特殊的需求等等
查看>>
APP性能测试指标
查看>>
hadoop集群管理之 SecondaryNameNode和NameNode
查看>>
appium环境搭建
查看>>
bzoj2733: [HNOI2012]永无乡
查看>>
bzoj2434: [Noi2011]阿狸的打字机
查看>>