一道面试题

Emperor 2011-12-19 11:40:49
前几天碰到一个面试题,当时没有做出来,贴上来看看:
有一张表:Sale (公司销售记录),有如下数据:
-------------------------------
year month saleNumber
-------------------------------
2009 1 1000
2009 2 1200
2009 3 1100
2009 4 1150
2010 1 1300
2010 2 1350
2010 3 1250
2010 4 1350
...
--------------------------------

要求写一段sql语句,显示如下结果:
------------------------------------------
year m1 m2 m3 m4
------------------------------------------
2009 1000 1200 1100 1150
2010 1300 1350 1250 1350
...
------------------------------------------
因为一时没想到该怎么做,所以拿上来请教一下哈。
...全文
177 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
cutebear2008 2011-12-21
  • 打赏
  • 举报
回复
case when 通用的,干嘛不用呢! 标准sql
zujinsheng 2011-12-21
  • 打赏
  • 举报
回复
是的..也可以采用8L 说的通用 case when

with t as
(select 2009 as year,1 as month,1000 as saleNumber from dual UNION ALL
select 2009, 2, 1200 from dual UNION ALL
select 2009, 3, 1100 from dual UNION ALL
select 2009, 4, 1150 from dual UNION ALL
select 2010, 1, 1300 from dual UNION ALL
select 2010, 2, 1350 from dual UNION ALL
select 2010, 3, 1250 from dual UNION ALL
select 2010, 4, 1350 from dual
)
select year,
sum(case month when 1 then saleNumber end) as m1,
sum(case month when 2 then saleNumber end) as m2,
sum(case month when 3 then saleNumber end) as m3,
sum(case month when 4 then saleNumber end) as m4
from t
group by year;


[Quote=引用 6 楼 e_mperor 的回复:]

非常感谢您的解答。decode函数是不是只有oracle支持啊?引用 3 楼 zujinsheng 的回复:

简化一下..
SQL code

with t as
(select 2009 as year,1 as month,1000 as saleNumber from dual UNION ALL
select 2009, 2, 1200 from dual UNION ……
[/Quote]
wl_dmp 2011-12-20
  • 打赏
  • 举报
回复
不知道你用的是什么数据库
这个是用oracle的函数decode完成的,希望对lz有用
select
year,
max(decode(month,'1',salenumber)) as m1 ,
max(decode(month,'2',salenumber)) as m2,
max(decode(month,'3',salenumber)) as m3 ,
max(decode(month,'4',salenumber)) as m4
from test
GROUP BY year
Emperor 2011-12-20
  • 打赏
  • 举报
回复
这个题目是前几天面试的时候碰到的题目,没说用什么数据库[Quote=引用 4 楼 wl_dmp 的回复:]

不知道你用的是什么数据库
这个是用oracle的函数decode完成的,希望对lz有用
select
year,
max……
[/Quote]
Emperor 2011-12-20
  • 打赏
  • 举报
回复
非常感谢您的解答。decode函数是不是只有oracle支持啊?[Quote=引用 3 楼 zujinsheng 的回复:]

简化一下..
SQL code

with t as
(select 2009 as year,1 as month,1000 as saleNumber from dual UNION ALL
select 2009, 2, 1200 from dual UNION ALL
select 2009, 3, 1100 from dual UNION ALL
select 2009, ……
[/Quote]
zujinsheng 2011-12-20
  • 打赏
  • 举报
回复
简化一下..

with t as
(select 2009 as year,1 as month,1000 as saleNumber from dual UNION ALL
select 2009, 2, 1200 from dual UNION ALL
select 2009, 3, 1100 from dual UNION ALL
select 2009, 4, 1150 from dual UNION ALL
select 2010, 1, 1300 from dual UNION ALL
select 2010, 2, 1350 from dual UNION ALL
select 2010, 3, 1250 from dual UNION ALL
select 2010, 4, 1350 from dual
)
select year,
sum(decode(month,1,saleNumber)) as m1,
sum(decode(month,2,saleNumber)) as m2,
sum(decode(month,3,saleNumber)) as m3,
sum(decode(month,4,saleNumber)) as m4
from t
group by year;
iqlife 2011-12-20
  • 打赏
  • 举报
回复
行转列
zujinsheng 2011-12-20
  • 打赏
  • 举报
回复

with t as
(select 2009 as year,1 as month,1000 as saleNumber from dual UNION ALL
select 2009, 2, 1200 from dual UNION ALL
select 2009, 3, 1100 from dual UNION ALL
select 2009, 4, 1150 from dual UNION ALL
select 2010, 1, 1300 from dual UNION ALL
select 2010, 2, 1350 from dual UNION ALL
select 2010, 3, 1250 from dual UNION ALL
select 2010, 4, 1350 from dual
)
select year,sum(m1) m1,sum(m2) m2,sum(m3) m3,sum(m4) m4
from (select year,
decode(month,1,saleNumber) as m1,
decode(month,2,saleNumber) as m2,
decode(month,3,saleNumber) as m3,
decode(month,4,saleNumber) as m4
from t)
group by year;

simon_s52 2011-12-20
  • 打赏
  • 举报
回复
4楼的函数做具体题目时可能会有问题的!建议使用3楼答案。
昨日,11.19,最新整理了,第61-80题,现在公布上传。 另加上之前公布的第1-60 题,在此做一次汇总上传,以飨各位。 可以这么说,绝大部分的面试题,都是这100 道题系列的翻版, 此微软等公司数据结构+算法面试100 题系列,是极具代表性的经典面试题。 而,对你更重要的是,我自个还提供了答案下载,提供思路,呵。 所以,这份资料+答案,在网上是独一无二的。 ------------------------------------ 整理资源,下载地址: 答案系列: 1.[最新答案V0.3 版]微软等数据结构+算法面试100 题[第21-40 题答案] http://download.csdn.net/source/2832862 2.[答案V0.2 版]精选微软数据结构+算法面试100 题[前20 题]--修正 http://download.csdn.net/source/2813890 //此份答案是针对最初的V0.1 版本,进行的校正与修正。 3.[答案V0.1 版]精选微软数据结构+算法面试100 题[前25 题] http://download.csdn.net/source/2796735 题目系列: 4.[第一部分]精选微软等公司数据结构+算法经典面试100 题[1-40 题] http://download.csdn.net/source/2778852 5.[第1 题-60 题汇总]微软等数据结构+算法面试100 题 http://download.csdn.net/source/2826690 更多资源,下载地址: http://v_july_v.download.csdn.net/ 若你对以上任何题目或任何答案,有任何问题,欢迎联系我: My E-mail: zhoulei0907@yahoo.cn ------------- 作者声明: 本人July 对以上公布的所有任何题目或资源享有版权。转载以上公布的任何一题, 或上传百度文库资源,请注明出处,及作者我本人。 向你的厚道致敬。谢谢。 ---July、2010 年11 月20 日。 ------------------------------------------------------ 各位,若对以上100题任何一道,或对已上传的任何一题的答案, 有任何问题,请把你的思路、想法,回复到此帖子上, 微软等100题系列,永久维护地址(2010年11.26日): http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html
此为我个人搜集整理的, 精选微软等公司,有关 数据结构和算法的面试100题[前40题], 此绝对值得你下载收藏。 网友yui评论,真是够多的了,从此,不用再看其它面试题.... 一句话,请享用。 其它资源,下载地址: 1.[最新答案V0.3版]微软等数据结构+算法面试100题[第21-40题答案] http://download.csdn.net/source/2832862 2.[第1题-60题汇总]微软等数据结构+算法面试100题 http://download.csdn.net/source/2826690 3.[答案V0.2版]精选微软数据结构+算法面试100题[前20题]--修正 http://download.csdn.net/source/2813890 //此份答案是针对最初的V0.1版本,进行的校正与修正。 4.[答案V0.1版]精选微软数据结构+算法面试100题[前25题] http://download.csdn.net/source/2796735 5.[第二部分]精选微软等公司结构+算法面试100题[前41-60题]: http://download.csdn.net/source/2811703 6.[第一部分]精选微软等公司数据结构+算法经典面试100题[1-40题] http://download.csdn.net/source/2778852 更多资源,下载地址: http://v_july_v.download.csdn.net/ //请继续期待,后续内容。 ------------------------------------------------------ 各位,若对以上100题任何一道,或对已上传的任何一题的答案, 有任何问题,请把你的思路、想法,回复到此帖子上, 微软等100题系列,永久维护地址(2010年11.26日): http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html -------July、2010年12月2日。
精选微软等数据结构+算法面试100题答案修正V0.2版本 -------------------- 此份答案是针对,前期已公布的最初的那份答案的,初步校正与修正。 http://download.csdn.net/source/2796735(V0.1版) 相比第一份V0.1版答案,此份答案V0.2版更加准确,亦修正了不少题目的答案。 此份20题的答案,思路更加清晰易懂,简介明了。 请享用。July、2010/11/06。 其它资源,下载地址: 1.[最新答案V0.3版]微软等数据结构+算法面试100题[第21-40题答案] http://download.csdn.net/source/2832862 2.[第1题-60题汇总]微软等数据结构+算法面试100题 http://download.csdn.net/source/2826690 3.[答案V0.2版]精选微软数据结构+算法面试100题[前20题]--修正 http://download.csdn.net/source/2813890 //此份答案是针对最初的V0.1版本,进行的校正与修正。 4.[答案V0.1版]精选微软数据结构+算法面试100题[前25题] http://download.csdn.net/source/2796735 5.[第二部分]精选微软等公司结构+算法面试100题[前41-60题]: http://download.csdn.net/source/2811703 6.[第一部分]精选微软等公司数据结构+算法经典面试100题[1-40题] http://download.csdn.net/source/2778852 更多资源,下载地址: http://v_july_v.download.csdn.net/ ------------------------------------------------------ 各位,若对以上100题任何一道,或对已上传的任何一题的答案, 有任何问题,请把你的思路、想法,回复到此帖子上, 微软等100题系列,永久维护地址(2010年11.26日): http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html
火爆出炉:微软等数据结构+算法面试100题首次完整亮相 ---100题V0.1版最终完成 作者:July 2010年12月6日 微软等100题系列V0.1版终于结束了。 从2010年10月11日当天最初发表前40题以来,直至此刻,整理这100题,已有近2个月。 2个月,因为要整理这100题,很多很多其它的事都被我强迫性的搁置一旁, 如今,要好好专心去做因这100题而被耽误的、其它的事了。 这微软等数据结构+算法面试100题系列(题目+答案),到底现在、或此刻、或未来, 对初学者有多大的意义,在此,我就不给予评说了。 由他们自己来认定。所谓,公道自在人心,我相信这句话。 任何人,对以下任何资料、题目、或答案,有任何问题,欢迎联系我。 作者邮箱: zhoulei0907@yahoo.cn 作者声明: 转载或引用以下任何资料、或题目,请注明作者本人July及出处。 向您的厚道致敬,谢谢。 好了,请享受这完完整整的100题吧,这可是首次完整亮相哦。:D。 ............ ............ 答案系列: 5.[最新答案V0.3版]微软等数据结构+算法面试100题[第21-40题答案] http://download.csdn.net/source/2832862 6.[答案V0.2版]精选微软数据结构+算法面试100题[前20题]--修正 http://download.csdn.net/source/2813890 //此份答案是针对最初的V0.1版本,进行的校正与修正。 7.[答案V0.1版]精选微软数据结构+算法面试100题[前25题] http://download.csdn.net/source/2796735 剩下的第41-100题答案,正在整理中。预计明年整理公布。 请各位,细心的等待。谢谢。 更多资源,下载地址: http://v_july_v.download.csdn.net/ ================================== 更多详情,请参见本人博客: My Blog: http://blog.csdn.net/v_JULY_v --------------------------------------------------------------------------------------- 各位,若对以上100题任何一道,或对已上传的任何一题的答案, 有任何问题,请把你的思路、想法,回复到此帖子上, 微软等100题系列,永久维护地址(2010年11.26日): http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧