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

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等等   有需要的朋友可以私信小编"测试"领取

科技向善!币耀BtLux为区块链建立新秩序中小企业的困境据统计,我国现在有1500多万家企业,在这1500多万家企业当中,1100多万家企业是小型和微型企业。如果再加上个体工商户,那么小型微型企业应该占到企业总数的94。表废旧金属回收领导者顺尔茨助力推动中国经济绿色发展随着经济的发展,中国人均国民收入正稳步迈入中等收入水平,国内消费市场和国民消费能力快速增长。这为经济发展带来动力,但物质生产和消费规模的扩大,势必对资源环境和生态造成压力。以绿色低睿至科技集团着手解决大数据交易难点,建立数据共享服务平台近年来,随着大数据的普及和应用,各行业对数据交易的需求量增大,数据资源的价值也逐步提升。但目前,数据交易的过程仍面临诸多问题一是数据交易环境有待改善,需要相应标准体系及法律法规的监发扬传统中医文化为群众健康保驾护航这是我第二次来这家店做治疗了。今年68岁的杨婆婆,上个月左手臂被压伤,严重时抬都觉得困难,前几天,她在等公交车时意外发现同济堂清镇店在试营业,于是她抱着试一试心态做了一次按摩治疗,码链文化节暨码链商学院三周年庆祝大会在山东召开长风破浪会有时,直挂云帆济沧海。这是码链人乐观自信执著追求理想的伟大情怀。9月1日下午14时,主题为码链大变局中遇见未来的首届码链文化节,暨码链数字经济商学院成立三周年大会,在山东中国联通开展落实高品质服务提升客户满意度专项行动为深入贯彻落实以人民为中心的发展思想,切实推进我为群众办实事党史学习教育实践活动,11月4日,中国联通召开全国服务攻坚工作会议,开展落实高品质服务,提升客户满意度专项行动,督促全员数位线下大数据赋能某世界500强品牌西安项目调研分析近日,行业领先的线下大数据企业数位与某世界500强品牌西安项目就消费者分析和竞品研究达成合作。数位线下大数据基于6年8000万室内商业场景位置信息和标签数据,助力该项目完成了周边商房迅通x上上参谋携手并进,助力优质数据平台升级近年来,向数字化智慧化转变已经成为众多行业领域的发展趋势,对于企业而言,对于大数据应用的需求也愈发迫切。房迅通作为国内知名的数据科技公司,始终致力于为房地产行业提供精细化数据服务。送给女性朋友的主机可以怎么组装你首先需要的是萌兜机箱相信许多懂一点电脑知识的男性朋友,都会有过以下这种情况听说你很懂电脑,能够帮我组装一台电脑吗?某位女性朋友如是说。这个时候你两眼放光,开始长篇大论,要选什么样的显卡,什么样的CPU搭载华为鸿鹄SuperMiniLED助力鸿蒙电视,UDE展会揽获技术创新奖为了促进MiniLED产业迅速发展,中国电子视像行业协会MiniMicroLED显示产业分会在上海举办了UDE展会。这次展会的目的就是对MiniLED产业近期发布的几款产品进行专业华为智慧屏V75Super颜值在线!完胜索尼A80JOLED如今的电视已经彻底摆脱了传统电视的束缚,屏幕越来越大,外观越来越薄,功能越来越多,智能化越来越强,不断更新进化7月29日,全新上市的华为V系列智慧屏V75Super,一经上市就成为
发布至今下跌1500元,256GB65W闪充,2K曲面屏旗舰售价大跳水买新不买旧这个说法很长时间在手机行业中都是真理,因为手机行业发展速度快,新机总会在硬件配置或者功能方面比旧机型更出色,但是高速发展的手机行业终究是会遇到瓶颈的,而目前就处于这样一个中新财评企业应追求匠心精神来源中国新闻网中新财经5月8日电(朱妍)瑞士钟表全球文明,其背后是千千万万个工匠精益求精的结果。瑞士表匠对每一个零件精雕细琢,对每一道工序精心打磨,正式因为他们这种追求极致的精神,离不开DART的Flutter(dart篇)前言Dart是谷歌开发的计算机编程语言,后来被Ecma(ECMA408)认定为标准。它被用于web服务器移动应用2和物联网等领域的开发。它是宽松开源许可证(修改的BSD证书)下的开归于吉利后,小厂魅族能否重回巅峰?虽然没有得到正式官宣,但魅族被收购基本已经成为定局。很难想象,头顶国产智能手机开创者的头衔,当年还与小米杀得有来有回的魅族,在十年后不仅沦为珠海小厂,也不得不签下这份卖身契。不过这极度恐惧引发加密货币大跌,市场蒸发2,000亿美元文BillyBambrough最近,比特币以太坊和其他主要加密货币均出现大幅下跌,短短几天内加密市场便失去了约2,000亿美元(并且有人担心比特币价格可能会进一步下跌)。在美联储多js基础面试题6170道题目61。作用域的分类参考答案块作用域词法作用域动态作用域解析1块作用域花括号2词法作用域(js属于词法作用域)作用域只跟在何处被创建有关系,跟在何处被调用没有关系3动态作用域作用域只iPhone14Max再曝比想象中更乐观,果粉不敢相信经多方消息确认,iPhone14系列会砍掉mini,推出价格较低的大屏标准版,也就是iPhone14Max。如今智能手机已经缺乏功能性创新,通过大屏来刺激销量,成了各大手机厂商的最联想道歉了?人民日报早有忠告如果一个企业没有社会责任和使命感,不能把国家和人民的利益放在第一位,做得再大我们也不需要。在中国不要妄想大而不倒,自然规律告诉我们,一鲸落,万物生,更不要妄想像韩国余承东站台,华为buff吃满的极狐SHI版终于开售了就在半个月前,网上突然传出了北汽和华为闹翻的新闻,其中最有力的证据就是极狐SHI版难产。虽然我们都知道这是一个谣言,但一拖再拖的交付时间却是不争的事实。去年4月就公布预售价的极狐SiQOOZ5将推6000mAh超大电池版支持44W快充,厚度增加明显鞭牛士5月8日消息,去年9月23日,iQOO带来了传承性能先锋之名的iQOOZ5,该机率先在同级别中搭载满血版LPDDR5和满血版UFS3。1,并搭配高通骁龙778G处理器,重新定给大家种草4款,它们均是物超所值的好手机1。realmeQ3s目前这款手机的8128GB版本已经降到了1399元。这是一款高性价比的5G手机。它的性能确实不错。它配备了高通骁龙778G处理器。该芯片性能强劲。工艺性能和功