范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

SQL经典面试题行列转换

  在我们的实际工作中,为了研发出功能完整、系统健壮的软件,需要我们测试人员想法设法的去挑出软件的问题,所以很多公司对测试人员的要求甚至高于开发人员,而通过 SQL 语句的编写,测试人员可以去进行数据查询、数据正确性完整性验证、构造测试数据、或者行破坏测试或压力测试。因此,作为一个测试人员,掌握 SQL 的重要性就不言而喻了。在我们的面试过程中,会碰到各种数据库或者编写 SQL 的面试题。面试题:行列转换
  来看下面这道难倒众生的经典面试题
  柠檬班第 30 期学生要毕业了,他们 Linux、MySQL、Java 成绩保存在数据表 tb_lemon_grade 中,表中字段 id,student_name,course,score 分别表示成绩 id,学生姓名,课程名称,课程成绩,表中数据表 1 所示。请写出一条 SQL,将表 1 的数据变成表 2 的形式
  表一数据如下:
  id
  学生姓名
  课程名称
  课程成绩
  1
  张三   Linux   85
  2
  张三   MySQL   92
  3
  张三   Java   87
  4
  李四   Linux   96
  5
  李四   MySQL   89
  6
  李四   Java   100
  7
  王五   Linux   91
  8
  王五   MySQL   83
  9
  王五   Java   98
  表 2 数据如下:   学生姓名   Linux   MySQL   Java   张三   85
  92
  87
  李四   96
  89
  100
  王五   91
  83
  98一:创建表 CREATE TABLE tb_lemon_grade ( id INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, student_name VARCHAR(20) DEFAULT NULL, course VARCHAR(20) DEFAULT NULL, score FLOAT DEFAULT "0"); 二:初始化数据 INSERT INTO tb_lemon_grade (student_name, course, score) VALUES ("张三", "Linux", 85), ("张三", "MySQL", 92), ("张三", "Java", 87), ("李四", "Linux", 96), ("李四", "MySQL", 89), ("李四", "Java", 100), ("王五", "Linux", 91), ("王五", "MySQL", 83), ("王五", "Java", 98); 三:首先我们查询出所有数据,这个结果和我们的图 1 是一样的   select * from tb_lemon_grade;   四:使用常量列输出我们的目标结构   可以看到结果已经和我们的图二非常接近了   五:使用 IF 函数,替换我们的常量列,将成绩赋值到对应行的对应列 SELECT student_name, IF(COURSE = "Linux",SCORE,0) "Linux", IF(COURSE = "MySQL",SCORE,0) "MySQL", IF(COURSE = "Java",SCORE,0) "Java" FROM tb_lemon_grade;   运行 SQL,结果如下所示:   六:我们来分析这个结果集,   在原始结构中,每一行表示了某个同学某一个科的成绩,以第一行为例,第一行是张三同学 Linux 的成绩,所以我们结果集中 Linux 有成绩为 85,而其他两列 MySQL 和 Java 作为常量列,成绩为 0。   再分析每个同学的成绩的所有行,如下图所示,每个方块内包含行中,就有该同学这门课程的成绩,并且该方块内其余行的成绩值为 0。因此,不难想到,我们可以使用分组,通过分组提取出每科的成绩七:分组,使用 MAX 函数取出最大值   (因为其中只有一行成绩为真实成绩,其他行值为 0,所以最大值就是真实成绩) SELECT student_name, MAX(IF(COURSE = "Linux",SCORE,0)) "Linux", MAX(IF(COURSE = "MySQL",SCORE,0)) "MySQL", MAX(IF(COURSE = "Java",SCORE,0)) "Java" FROM tb_lemon_grade GROUP BY student_name;   八:也可以分组后,对每行数据进行求和,使用 SUM 函数,语句和结果如下: SELECT student_name, SUM(IF(COURSE = "Linux",SCORE,0)) "Linux", SUM(IF(COURSE = "MySQL",SCORE,0)) "MySQL", SUM(IF(COURSE = "Java",SCORE,0)) "Java" FROM tb_lemon_grade GROUP BY student_name;   九:既然使用 IF 语句可以达到效果,那使用 CASE 语句也是同样的效果   分组,使用 MAX 聚合函数 SELECT student_name, max(CASE COURSE when "Linux" THEN SCORE ELSE 0 END) as "Linux", max(CASE COURSE when "MySQL" THEN SCORE ELSE 0 END) as "MySQL", max(CASE COURSE when "Java" THEN SCORE ELSE 0 END) as "Java" FROM tb_lemon_grade GROUP BY student_name;   结果如下图所示:   使用 SUM,结果如下图所示 SELECT student_name, SUM(CASE COURSE when "Linux" THEN SCORE ELSE 0 END) as "Linux", SUM(CASE COURSE when "MySQL" THEN SCORE ELSE 0 END) as "MySQL", SUM(CASE COURSE when "Java" THEN SCORE ELSE 0 END) as "Java" FROM tb_lemon_grade GROUP BY student_name;   总结   通过上面一步一步的分解,我们就完成了一个行转列的 SQL 语句编写,现在问题又来了,这种方式虽然能达到效果,但是如果课程多了,   比如还有英语、数学、物理等等课程,是不是写起来就笔记麻烦了?有没有动态的方式,不管有多少课程,通过 SQL 就能一步到位呢?感兴趣大家可以去尝试下。   p s:小编个人收集啦许多软测资料,希望能够帮到学软件测试的朋友们软件资料分享包括但不限于:Java自动化测试、Python自动化测试、性能测试、web测试、APP测试 测试开发工具包:appuim安装包、fiddler安装包(也有配套视频教程)、eclipse、git、jmeter、loadrunner、monkey、postman、soapul、Xmind等等   有需要的朋友可以私信小编"测试"领取

盘点3款10万级自主品牌SUV,个个配置顶天,颜值动力都是杀手锏文车魔王原创对于很多刚刚上班或者很多年轻家庭来说,因为经济能力有限,往往购车的预算都是卡在10万元左右。俗话说,好钢要用在刀刃上。面对市场上如此众多的车型,我们到底该如何选择呢?今雷柏NX1700键鼠套装新品发布,这一次,除了触感很舒适,还很圆润圆是彬彬有礼,是周而复始在棱角分明的锋芒之下包裹的是温润和煦的柔软内心这是NX1700有线键鼠套装的设计语言纯黑,之于每个系列,登场以黑为主,在简约中叠放简单的生活层次冷静包容自由雷柏新女性ralemo系列无线键鼠,微醺紫这个颜色,是接近满分的甜花看半开,酒饮微醺什么样的独门法则,可以轻轻松松解锁爱的燃力?恋爱的信号在加强,合拍的对象正在连上。把紫色装进酒瓶,带来了悸动,牵引着心绪,爱沿着文字的敲击蔓延,比星星要璀璨,比风雷柏游戏官宣,与AG和平精英战队共赴2021PEL扫荡全场,凭什么?凭灵性的天赋,还是楼宇激战硬刚的态度?这一次,你可以有新的答案!特种兵,集结!属于勇者的冒险精神,以突破为切入点,红蓝结合,雷柏游戏携手AG和平精英战队征战202雷柏新发布VM150S游戏耳机,赠送外置虚拟7。1声卡助力听声辨位房区战,戴上你就是全场主角外置声卡,充分利用近距离刚抢,远距离精准打击双麦选项,稳准狠的超高武力燃烧硬核接口配置,不被常规所限雷柏VM150S虚拟7。1外置声卡游戏耳机释放玩家态度首试智跑Ace泵感外观地表最强1。5T发动机超智慧有趣灵魂自6月以来,东风悦达起亚智跑Ace动作不断,凭借行业首创的高能泵感美学设计200Ps超强马力的1。5T地表最强发动机首开合资SUV全场景智能科技先河的智控座舱等,智跑Ace释放了从新车亮相并公开征名,捷途汽车晋阶旅行新时代7月8日,新捷途新旅途捷途汽车品牌之夜发布会在北京荣耀揭幕,发布会现场亮相的一款新车备受关注。新车曝光,造型动感科技新车型代号捷途X,采用了更加年轻化的交互设计,线条流畅饱满,整体欧尚X5青春版每个人,都是这个世界的追光者在这个快节奏碎片化的时代,我们总会感怀岁月,感怀那个被贴上梦想奋斗探索热血爱情等等标签的青春。青春是什么?有人说青春是一首无言的歌,每一个细节都会化成一个个音符镶嵌在岁月乐谱中,虽智启未来一路R行,R汽车郑州首家体验中心盛大开业2021年6月27日上午,作为上汽集团高端新能源品牌R汽车的郑州首家体验中心,R汽车郑州锦艺城体验中心迎来了盛大的开业典礼。R汽车科技兑换想象的品牌理念,用智能开启未来,让R伴你一2025年全球销量400万辆长城汽车正式发布2025战略6月28日,长城汽车2025战略发布会暨第8届科技节开幕式在保定哈弗技术中心盛大召开,长城汽车正式发布2025战略到2025年,实现全球年销量400万辆,其中80为新能源汽车,营业从感知智能步入认知智能时代,咖啡智能2。0正式升级发布2021年6月29日,长城汽车咖啡智能2。0升级发布会在保定哈弗技术中心举行。中国电动汽车百人会副理事长董扬,长城汽车副总裁穆峰,长城汽车副总裁单红艳,长城汽车技术副总裁宋东先,长
干货!什么是无主商标?无主商标等于闲置商标吗?什么是无主商标?无主商标是指由于企业破产解散关闭或商标人死亡,在主管机关的商标注册簿内仍然存在的注册商标。简而言之,无主商标就是没有商标持有人但仍合法的商标。无主商标有什么特征呢?吉利起诉曹操货的,获赔10。1万元日前,浙江吉利控股集团有限公司与北京搜狐互联网信息服务有限公司等侵害商标权及不正当竞争纠纷一审民事判决书于近日公布,原告为浙江吉利控股集团有限公司,被告为深圳市曹操货的科技有限公司干货!商标注册的诚实信用原则是什么?为了更好地处理违背诚实信用原则,恶意注册商标将别人早已在先应用的商标抢先开展注册等情况,在我国商标法第三次改动时增加了申请办理注册和应用商标,理应遵照诚实信用原则的要求。商标注册的如何注册个人肖像为商标?会被驳回吗?能够作为商标注册的标志,除了文字图形数字等,自己的肖像也可以为商标申请注册。在生活中,我们也能看到很多以肖像注册为商标的,比如老干妈肯德基王守义等都是知名度比较高的肖像商标。而且随CoCo都可起诉同名企业侵害商标权,获赔5。5万天眼查App显示,近日,上海馥邑企业管理有限公司与杭州都可生物科技连锁有限公司北京微梦创科网络技术有限公司侵害商标权纠纷一审民事判决书公布,案号为(2019)沪0115民初8506科普!阿司匹林原来不是通用名称而是商标在知识产权战略盛行的今天,商标作为企业的无形财产而备受瞩目,其既是企业商品或服务质量形象声誉的载体,又在带给企业开拓商品市场获取巨大的经济利益的同时也成为多方利益的博弈场。而有一种全球电竞媒体版权暴涨!2021年达4亿美元根据国外媒体Newzoo报告,全球电竞赛事的媒体版权将从1亿美元增长到2021年的4亿美元左右,在传统体育赛事版权普遍下跌的大环境上看,电竞媒体版权的暴涨无疑是令人振奋的好消息。但干货!公司注销时商标该如何处理?在现实生活中,公司出现注销的情况是非常多的,而公司一般是会注册自己的商标的,公司注销的时候就需要处理好公司清算的相关问题,还有商标的处理的问题,那么商标注册后公司注销了还有效吗?依李焕英与烈士同名,商标申请难通过虽说春节假期已经过去,但是今年电源春节档的余温仍未消散。根据灯塔实时票房统计,截止24日,今年的票房黑马你好,李焕英累计票房超40亿,成功2021迄今为止票房最高的电影。网络上对于美国奥委会状告PUMA,指控商标侵权美国时间2021年2月23日,据报道,美国奥运会及残奥会委员会(USOPC)在科罗拉多州联邦地方法院对德国运动品牌彪马(PUMA)提起上诉。时间回溯到2020年3月24日,国际奥委华为自研编程语言曝光,名为仓颉数码界一直有传闻称华为正在研发自己的编程语言。早在去年9月初微博博主IT工程师透露称,华为正在研发新的自主编程语言仓颉,领头人是南京大学的计算机科学与技术系博士生导师冯新宇。随后,