一道SQL面试题(行列互换)
转载:http://blog.csdn.net/jackfrued/article/details/45021897
有一个SQL题在面试中出现的概率极高,最近有学生出去面试仍然会遇到这样的题目,在这里跟大家分享一下。
题目:数据库中有一张如下所示的表,表名为sales。
年 | 季度 | 销售量 |
---|---|---|
1991 | 1 | 11 |
1991 | 2 | 12 |
1991 | 3 | 13 |
1991 | 4 | 14 |
1992 | 1 | 21 |
1992 | 2 | 22 |
1992 | 3 | 23 |
1992 | 4 | 24 |
要求:写一个SQL语句查询出如下所示的结果。
年 | 一季度 | 二季度 | 三季度 | 四季度 |
---|---|---|---|---|
1991 | 11 | 12 | 13 | 14 |
1992 | 21 | 22 | 23 | 24 |
我给出的答案是这样的:
<code class="language-SQL hljs sql has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-operator" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">select</span> 年, <span class="hljs-aggregate" style="box-sizing: border-box;">sum</span>(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">case</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">when</span> 季度=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">then</span> 销售量 <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">else</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>) <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">as</span> 一季度, <span class="hljs-aggregate" style="box-sizing: border-box;">sum</span>(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">case</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">when</span> 季度=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">then</span> 销售量 <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">else</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>) <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">as</span> 二季度, <span class="hljs-aggregate" style="box-sizing: border-box;">sum</span>(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">case</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">when</span> 季度=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">then</span> 销售量 <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">else</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>) <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">as</span> 三季度, <span class="hljs-aggregate" style="box-sizing: border-box;">sum</span>(<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">case</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">when</span> 季度=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">4</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">then</span> 销售量 <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">else</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>) <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">as</span> 四季度 <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">from</span> sales <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">group</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">by</span> 年;</span></code>
一道SQL面试题(行列互换)相关推荐
- 外企一道 SQL 面试题,刷掉 494 名候选人
点击蓝色"有关SQL"关注我哟 加个"星标",天天与10000人一起快乐成长 图 | Lenis 叮叮... 清脆的微信声,把我从梦中唤醒.早已习惯起床之后, ...
- 简单的一道 SQL 题,谈如何提高编程水平
点击蓝色"有关SQL"关注我哟 加个"星标",天天与12238人一起快乐成长 前两天发了一篇<SQL的3列4种对比方法>,近500 阅读.一个月没更 ...
- sql 列转行_SQL面试题:如何行列互换?一个万能模板
三个步骤: 输出行列互换的结构表 再用case...when...来输出数据 用group by及max输出最终结果 1.输出行列互换的结构表 SELECT 学号,'课程编号0001','课程编号00 ...
- C语言试题二十七之请编写程序,实现矩阵(3行3列)的转置(即行列互换)。
1. 题目 请编写一个函数function(int array[3][3]),实现矩阵(3行3列)的转置(即行列互换). 2 .温馨提示 C语言试题汇总里可用于计算机二级C语言笔试.机试.研究生复试中 ...
- SQL sever 实现表行列互换
SQL行列互换有多种方法,这里需要使用pivot和unpivot函数,首先创建一个成绩表score create table score --创建表score (学号 nchar(10) not nu ...
- 一道SQL语句面试题,关于group by
一道SQL语句面试题,关于group by 表内容:2005-05-09 胜 2005-05-09 胜 2005-05-09 负 2005-05-09 负 2005-05-10 胜 2005-05-1 ...
- 一道SQL语句面试题
最近面试了几个人,给他们出了一道SQL语句面试题,但是反应效果不太理想.题目如下: 表scores有四个字段,学生stu.班级class.学院institute.分数score, 要求返回:班级考试人 ...
- 图解SQL面试题:经典50题
图解SQL面试题:经典50题 已知有如下4张表: 学生表:student(学号,学生姓名,出生年月,性别) 成绩表:score(学号,课程号,成绩) 课程表:course(课程号,课程名称,教师号) ...
- sql计算留存_免费教程《图解SQL面试题》
运营.产品经理.数据分析.软件开发等职位,SQL是必会的技能. 面试经常考察SQL,但是不会做,怎么办? 工作里遇到的业务问题,需要用SQL实现,怎么办? 为了帮助你解决这些问题,我写了一本免费教程& ...
最新文章
- python基础--urllib
- 用户列表-投资记录sql
- mnist学习实例(2)
- 无线光通信-CDMA中闭环链路的功率控制误差
- clustered index disadvantages in mysql
- Linux网络编程 之 IO多路复用poll(九)
- python自动化测试常用库_Python自动化测试常用库整理
- 【转载】IDEA中Git的更新/提交/还原方法
- Linux定时备份Oracle Database 翻译
- maven install 安装项目问题总结An unknown compilation problem occurred
- 将现有企业级模板项目从 Visual Studio .NET 2003 迁移到 Visual Studio 2005
- 群辉linux系统,群晖 篇五 提高群晖系统可靠性----Linux系统优化
- Oracle-数据库的备份与恢复
- 一个野生程序员的真实自述:我是如何从数学专业学渣入坑程序员的
- 数字电路低电平有效逻辑和符号的理解
- 个人理财通Android手机测试,基于Android的个人理财管理系统
- 带你玩转区块链--区块链面试问题及答案-第四章【总结篇】
- 港科夜闻|2022年香港科大气候适应及复原力大会圆满闭幕,政经领袖研讨香港气候政策与绿色金融发展...
- BetaFlight模块设计之十:磁力计任务分析
- 【社区周会】2021-06-01 内容概要
热门文章
- 1002 A+B for Polynomials (25分)_29行代码AC
- 【最详细】数据结构(C语言版 第2版)第五章课后习题答案 严蔚敏 等 编著
- 【GIF动画+完整可运行源代码】C++实现 插入排序——十大经典排序算法之三
- python双向索引什么意思_python字典支持双向索引吗
- 城市地区级联二级下拉选择菜单js特效
- java对象内存占用情况分析
- vue3.0实现原理
- pcm 8k单声道和双声道采样_音频接口PCM
- java 并发编程视频教程_全面深入学习java并发编程,视频教程下载
- ppt提示内存或系统资源不足_为何手机一直提示内存不足?原来是它们惹的祸,赶紧清了...