安庆大理运城常德铜陵江西
投稿投诉
江西南阳
嘉兴昆明
铜陵滨州
广东西昌
常德梅州
兰州阳江
运城金华
广西萍乡
大理重庆
诸暨泉州
安庆南充
武汉辽宁

SQL经典面试题行列转换

6月14日 终离去投稿
  在我们的实际工作中,为了研发出功能完整、系统健壮的软件,需要我们测试人员想法设法的去挑出软件的问题,所以很多公司对测试人员的要求甚至高于开发人员,而通过SQL语句的编写,测试人员可以去进行数据查询、数据正确性完整性验证、构造测试数据、或者行破坏测试或压力测试。因此,作为一个测试人员,掌握SQL的重要性就不言而喻了。在我们的面试过程中,会碰到各种数据库或者编写SQL的面试题。面试题:行列转换
  来看下面这道难倒众生的经典面试题
  柠檬班第30期学生要毕业了,他们Linux、MySQL、Java成绩保存在数据表tblemongrade中,表中字段id,studentname,course,score分别表示成绩id,学生姓名,课程名称,课程成绩,表中数据表1所示。请写出一条SQL,将表1的数据变成表2的形式
  表一数据如下:
  id
  学生姓名
  课程名称
  课程成绩
  1hr张三
  Linux
  85hr2hr张三
  MySQL
  92hr3hr张三
  Java
  87hr4hr李四
  Linux
  96hr5hr李四
  MySQL
  89hr6hr李四
  Java
  100hr7hr王五
  Linux
  91hr8hr王五
  MySQL
  83hr9hr王五
  Java
  98hr表2数据如下:
  学生姓名
  Linux
  MySQL
  Java
  张三
  85hr92hr87hr李四
  96hr89hr100hr王五
  91hr83hr98一:创建表CREATETABLEtblemongrade(idINT(10)NOTNULLAUTOINCREMENTPRIMARYKEY,studentnameVARCHAR(20)DEFAULTNULL,courseVARCHAR(20)DEFAULTNULL,scoreFLOATDEFAULT0);二:初始化数据INSERTINTOtblemongrade(studentname,course,score)VALUES(张三,Linux,85),(张三,MySQL,92),(张三,Java,87),(李四,Linux,96),(李四,MySQL,89),(李四,Java,100),(王五,Linux,91),(王五,MySQL,83),(王五,Java,98);三:首先我们查询出所有数据,这个结果和我们的图1是一样的
  
  四:使用常量列输出我们的目标结构
  可以看到结果已经和我们的图二非常接近了
  五:使用IF函数,替换我们的常量列,将成绩赋值到对应行的对应列SELECTstudentname,IF(COURSELinux,SCORE,0)Linux,IF(COURSEMySQL,SCORE,0)MySQL,IF(COURSEJava,SCORE,0)JavaFROM
  运行SQL,结果如下所示:
  六:我们来分析这个结果集,
  在原始结构中,每一行表示了某个同学某一个科的成绩,以第一行为例,第一行是张三同学Linux的成绩,所以我们结果集中Linux有成绩为85,而其他两列MySQL和Java作为常量列,成绩为0。
  再分析每个同学的成绩的所有行,如下图所示,每个方块内包含行中,就有该同学这门课程的成绩,并且该方块内其余行的成绩值为0。因此,不难想到,我们可以使用分组,通过分组提取出每科的成绩七:分组,使用MAX函数取出最大值
  (因为其中只有一行成绩为真实成绩,其他行值为0,所以最大值就是真实成绩)SELECTstudentname,MAX(IF(COURSELinux,SCORE,0))Linux,MAX(IF(COURSEMySQL,SCORE,0))MySQL,MAX(IF(COURSEJava,SCORE,0))JavaFROMtblemongradeGROUPBY
  八:也可以分组后,对每行数据进行求和,使用SUM函数,语句和结果如下:SELECTstudentname,SUM(IF(COURSELinux,SCORE,0))Linux,SUM(IF(COURSEMySQL,SCORE,0))MySQL,SUM(IF(COURSEJava,SCORE,0))JavaFROMtblemongradeGROUPBY
  九:既然使用IF语句可以达到效果,那使用CASE语句也是同样的效果
  分组,使用MAX聚合函数SELECTstudentname,max(CASECOURSEwhenLinuxTHENSCOREELSE0END)asLinux,max(CASECOURSEwhenMySQLTHENSCOREELSE0END)asMySQL,max(CASECOURSEwhenJavaTHENSCOREELSE0END)asJavaFROMtblemongradeGROUPBY
  结果如下图所示:
  使用SUM,结果如下图所示SELECTstudentname,SUM(CASECOURSEwhenLinuxTHENSCOREELSE0END)asLinux,SUM(CASECOURSEwhenMySQLTHENSCOREELSE0END)asMySQL,SUM(CASECOURSEwhenJavaTHENSCOREELSE0END)asJavaFROMtblemongradeGROUPBY
  总结
  通过上面一步一步的分解,我们就完成了一个行转列的SQL语句编写,现在问题又来了,这种方式虽然能达到效果,但是如果课程多了,
  比如还有英语、数学、物理等等课程,是不是写起来就笔记麻烦了?有没有动态的方式,不管有多少课程,通过SQL就能一步到位呢?感兴趣大家可以去尝试下。
  ps:小编个人收集啦许多软测资料,希望能够帮到学软件测试的朋友们软件资料分享包括但不限于:Java自动化测试、Python自动化测试、性能测试、web测试、APP测试测试开发工具包:appuim安装包、fiddler安装包(也有配套视频教程)、eclipse、git、jmeter、loadrunner、monkey、postman、soapul、Xmind等等
  有需要的朋友可以私信小编测试领取
投诉 评论 转载

黑鲨5系列冲破引力,3月30日让我们一起来体验昨天上午,黑鲨官微宣布黑鲨5系列将于3月30日19:00召开新品发布会,以再一次,冲破自我引力,向上向前为发布会主题。根据以往的信息显示,黑鲨5系列手机将搭载全新骁龙8移……SQL经典面试题行列转换在我们的实际工作中,为了研发出功能完整、系统健壮的软件,需要我们测试人员想法设法的去挑出软件的问题,所以很多公司对测试人员的要求甚至高于开发人员,而通过SQL语句的编写,测试人……鲎活了4亿年,蓝色血液比黄金还贵!被人绑着抽血还吃到濒危?鲎(读音和后相同),是地球上最古老的生物之一。曾经的它们因为拥有独特的蓝色血液,成为了人类的献血冠军。为什么它们的血液会是蓝色的,还能够救人无数?鲎真的是美味吗,为……科大讯飞刷新机器常识推理世界纪录4月12日,由科大讯飞承建的我国首个认知智能国家重点实验室,以76。06的成绩登顶常识推理挑战赛CommonsenseQA2。0,刷新世界纪录,在让机器能理解、会思考上迈出一大……格力最近又实行了双休,为什么今年那么多大厂都在宣布双休制?最近半年时间,确实有很多大企业纷纷宣布双休,而且不仅实行双休,平时工作日加班时间也减少了,甚至有些企业需要申请才能够加班。比如前几天在格力成立30周年庆典大会上,董明珠就……KotlinCoroutine在Android中的使用和封装kotlin出来很多年,并被google被赋予Android首选开发语言的地位,还是有必要研究一下的,基础语法不再复述了,只简单聊聊kotlin中的核心内容之一:协程Corou……微信会不会被新软件取代?感谢您的阅读!你的微信会不会被其他的软件所取代?我觉得微信实际上作为目前来说最主要的社交平台,它确实有着自己独特的优势,在微信上,我们能够感受到用户在这一款APP上……小鹏飞行汽车测试飞行曝光日前,一组载人飞行器的照片受到关注,图中两名驾驶员驾驶飞行汽车在空中飞行。据悉,这款飞行器是9月24日,小鹏汇天对外发布的飞行汽车旅航者X2,该飞行器正在珠海航展参与展出。……华为真的没有那么好!在国外还不如小米。为什么?提这个问题的人纯粹是在胡说八道。这样带风向带立场的提问好吗?!我在北美生活了十多年,几乎看不到一个小米的用户,当年去欧洲出差到处都能看到华为的店面尤其是机场,小米踪影全无。你眼……华为2021SoundX帝瓦雷,带来无与伦比的视听盛宴音乐,可以让人产生情感共鸣,带来不同的情绪反应。而享受音乐的过程也离不开重要的工具,播放器、音箱、各种各样不同的音响设备。说到音乐,我本身是一个很喜欢听音乐的人,当然,并……弹窗广告霸屏直播消费维权难互联网广告新办法提出硬核规定来源:新华网新华社北京12月2日电题:弹窗广告霸屏、直播消费维权难互联网广告新办法提出硬核规定!新华社新华视点记者赵文君、颜之宏弹窗广告霸屏、直播消费维权难、中小学……比特币再现曙光初现,以太坊旭日东升,这波下跌行情已经结束?善猎者必善等待!历经13天的持续下跌和二次探底,现在行情终于出现回暖趋势。比特币在5月19日和20日首次崭露曙光初现,但那个时候,所有山寨币市场还没有发出信号。5月23日……
发哥冲击高端成了?天玑9000性能仅次于A15,高通该紧张了中国的独角兽都有哪几家,各自分布在哪?中兴胜诉!国产操作系统宣布免费使用有什么好的手机移动办公软件可以推荐?钢化膜值得贴吗?要怎么选?又要弯道超车?电动汽车补贴将取消,氢燃料汽车补贴又来了为什么越来越多的年轻人开始买华为荣耀,不买小米?Model2或将没有方向盘马斯克为何总说些豪言壮语骁龙780g处理器是什么级别?骁龙780g处理器参数及跑分评如何看盘?看盘有什么技巧?随着猪学会飞行,苹果将会出售备件来修理你的iPhone,这是5G来了,我们的4G手机怎么办?贵州掀起飞盘热印度上千村民互扔牛粪送祝福印度人为什么那么喜欢牛竞选大学团总支书记的演讲稿东莞设计为东莞制造添翼电脑主机开了显示器不亮该怎么解决?当股价处于底部时,盘面和线图会呈现一些明显的特征做视频号15天后,我发现2个新手容易踩的大坑如何在安卓上保存视频畅游长白山五年级作文医院出纳述职报告精选多篇止血带的个注意事项长相忆

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利