转载: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面试题(行列互换)相关推荐

  1. 外企一道 SQL 面试题,刷掉 494 名候选人

    点击蓝色"有关SQL"关注我哟 加个"星标",天天与10000人一起快乐成长 图 | Lenis  叮叮... 清脆的微信声,把我从梦中唤醒.早已习惯起床之后, ...

  2. 简单的一道 SQL 题,谈如何提高编程水平

    点击蓝色"有关SQL"关注我哟 加个"星标",天天与12238人一起快乐成长 前两天发了一篇<SQL的3列4种对比方法>,近500 阅读.一个月没更 ...

  3. sql 列转行_SQL面试题:如何行列互换?一个万能模板

    三个步骤: 输出行列互换的结构表 再用case...when...来输出数据 用group by及max输出最终结果 1.输出行列互换的结构表 SELECT 学号,'课程编号0001','课程编号00 ...

  4. C语言试题二十七之请编写程序,实现矩阵(3行3列)的转置(即行列互换)。

    1. 题目 请编写一个函数function(int array[3][3]),实现矩阵(3行3列)的转置(即行列互换). 2 .温馨提示 C语言试题汇总里可用于计算机二级C语言笔试.机试.研究生复试中 ...

  5. SQL sever 实现表行列互换

    SQL行列互换有多种方法,这里需要使用pivot和unpivot函数,首先创建一个成绩表score create table score --创建表score (学号 nchar(10) not nu ...

  6. 一道SQL语句面试题,关于group by

    一道SQL语句面试题,关于group by 表内容:2005-05-09 胜 2005-05-09 胜 2005-05-09 负 2005-05-09 负 2005-05-10 胜 2005-05-1 ...

  7. 一道SQL语句面试题

    最近面试了几个人,给他们出了一道SQL语句面试题,但是反应效果不太理想.题目如下: 表scores有四个字段,学生stu.班级class.学院institute.分数score, 要求返回:班级考试人 ...

  8. 图解SQL面试题:经典50题

    图解SQL面试题:经典50题 已知有如下4张表: 学生表:student(学号,学生姓名,出生年月,性别) 成绩表:score(学号,课程号,成绩) 课程表:course(课程号,课程名称,教师号) ...

  9. sql计算留存_免费教程《图解SQL面试题》

    运营.产品经理.数据分析.软件开发等职位,SQL是必会的技能. 面试经常考察SQL,但是不会做,怎么办? 工作里遇到的业务问题,需要用SQL实现,怎么办? 为了帮助你解决这些问题,我写了一本免费教程& ...

最新文章

  1. python基础--urllib
  2. 用户列表-投资记录sql
  3. mnist学习实例(2)
  4. 无线光通信-CDMA中闭环链路的功率控制误差
  5. clustered index disadvantages in mysql
  6. Linux网络编程 之 IO多路复用poll(九)
  7. python自动化测试常用库_Python自动化测试常用库整理
  8. 【转载】IDEA中Git的更新/提交/还原方法
  9. Linux定时备份Oracle Database 翻译
  10. maven install 安装项目问题总结An unknown compilation problem occurred
  11. 将现有企业级模板项目从 Visual Studio .NET 2003 迁移到 Visual Studio 2005
  12. 群辉linux系统,群晖 篇五 提高群晖系统可靠性----Linux系统优化
  13. Oracle-数据库的备份与恢复
  14. 一个野生程序员的真实自述:我是如何从数学专业学渣入坑程序员的
  15. 数字电路低电平有效逻辑和符号的理解
  16. 个人理财通Android手机测试,基于Android的个人理财管理系统
  17. 带你玩转区块链--区块链面试问题及答案-第四章【总结篇】
  18. 港科夜闻|2022年香港科大气候适应及复原力大会圆满闭幕,政经领袖研讨香港气候政策与绿色金融发展...
  19. BetaFlight模块设计之十:磁力计任务分析
  20. 【社区周会】2021-06-01 内容概要

热门文章

  1. 1002 A+B for Polynomials (25分)_29行代码AC
  2. 【最详细】数据结构(C语言版 第2版)第五章课后习题答案 严蔚敏 等 编著
  3. 【GIF动画+完整可运行源代码】C++实现 插入排序——十大经典排序算法之三
  4. python双向索引什么意思_python字典支持双向索引吗
  5. 城市地区级联二级下拉选择菜单js特效
  6. java对象内存占用情况分析
  7. vue3.0实现原理
  8. pcm 8k单声道和双声道采样_音频接口PCM
  9. java 并发编程视频教程_全面深入学习java并发编程,视频教程下载
  10. ppt提示内存或系统资源不足_为何手机一直提示内存不足?原来是它们惹的祸,赶紧清了...