`

一道sql面试题

阅读更多

题目:

表B


C1                 C2
2005-01-01   1
2005-01-01   3
2005-01-02   5

 

 

要求的输出数据

C1                 C2
2005-01-01   4
2005-01-02   5
合计                9
试用一个Sql语句完成。

该题目主要考的是分析函数函数over (partition by)的使用

 

--创建表B
create table b 
(c1 varchar2(14),c2 number);
insert into b
values('2005-01-01',1) ;
insert into b
values('2005-01-01',3) ;
insert into b
values('2005-01-02',5) ;
commit;

 

 

select c1,sum(c2) over(partition by c1)
from b
union 
select '合计:',sum(c2) over(partition by null)
from b;
C1             SUM(C2)OVER(PARTITIONBYC1)
-------------- --------------------------
2005-01-01                              4
2005-01-02                              5
合计:                                         9

 

0
0
分享到:
评论
2 楼 tendyming 2010-04-29  
ruanwxh 写道
select c1,sum(c2) c2 from b group by c1
union
select '合计',sum(c2) from b
这样好像也可以吧
问下博主
over分析函数的用法,作用?



ruanwxh,非常抱歉!我删错了您的回复!
1 楼 tendyming 2010-04-29  
ruanwxh 写道
select c1,sum(c2) c2 from b group by c1
union
select '合计',sum(c2) from b
这样好像也可以吧
问下博主
over分析函数的用法,作用?


可以!
就这道题目来说,用group by聚合函数同样可以实现,看起来更简单
实际上也没必要用over partition by分析函数 

分析函数over
Oracle从8.1.6开始有分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是:
对于每个组返回多行,而聚合函数对于每个组只返回一行。
有一种情况group by是无法做到的
请参考这里:
http://www.cnblogs.com/rootq/archive/2009/03/12/1409674.html

相关推荐

    一道SQL Server面试题

    一道SQL面试题 希望对你有用!!!!!!!!

    sql经典面试题 大家一起学习

    几个经典的sql面试题 大家一起学习 几个经典的sql面试题 大家一起学习

    一道sql面试题附答案

    一道sql面试答案

    一道真正的数据库sql面试题

    一道大软件公司真正的数据库面试题,本人没来得及写上解题过程,仅供参考,请大家指教

    看似简单的一道SQL面试题,你是否能够很快写出答案?

    近期在群里面看到了如下这样一个面试题目,这个题目其实难度不大,但是你是否能够很快写出这个答案来呢? 建表语句 create table student ( id varchar(20), name varchar(20), gender char(1), birth ...

    一道java面试题 行列转换

    java面试题之行列转换 Oracle 和SQLServer两种方式 详细例子以及说明 一条语句实现,绝对看得懂! 方便理解!

    SQL面试题:求时间差之和(有重复不计)

    面试某某公司BI岗位的时候,面试题中的一道sql题,咋看一下很简单,写的时候发现自己缺乏总结,没有很快的写出来。 题目如下: 求每个品牌的促销天数 表sale为促销营销表,数据中存在日期重复的情况,例如id为1的...

    SQLServer行转列实现思路记录

    最近面试遇到了一道面试题,顿时有点迷糊,只说出了思路,后来百度了一下,整理了一下思路,于是记录下来,方便以后学习。(面试题请参见附件) 相关的数据表: 1.Score表 2.[User]表 SQL语句如下: –方法一:静态...

    MySQL练习题(34道)

    建议不使用任何笔记等的情况下独立完成题目,能够较好的巩固基础,查缺补漏,该题目都是基础题,其中只有一道题目为某面试题,难度偏低。适合上手。 阅读建议: 如果有任何不明白的地方欢迎私信博主,后续会在mysql...

    SQL中的case…when…还能这么用(计算好评率、计算出有条件的字段的数量)

    文章目录SQL之CASE WHEN用法详解场景1:有分数score,score=60返回及格,score>=80返回优秀场景2:现老师要统计班中,有多少男同学,...场景5:结合max聚合函数一道真实的面试题 SQL之CASE WHEN用法详解 简单CASE WH

    sql server如何利用开窗函数over()进行分组统计

    这是一道常见的面试题,在实际项目中经常会用到。 需求:求出以产品类别为分组,各个分组里价格最高的产品信息。 实现过程如下: declare @t table( ProductID int, ProductName varchar(20), ProductType varchar...

    世界500强面试题.pdf

    第一篇 面试题 ................................................................................ 8 1.1. 简介 ................................................................................................

    02Python 版本 - Jupyter Noteboo.html

    数据分析师面试题 3、有一份数据部分如下,比如:刘备和关羽有关系,说明他们是一个团伙,刘备和张飞也有关系,那么刘备、关羽、张飞归为一个团伙,以此类推。用自己熟悉的编程语言根据人员和相关人员计算出团伙分类...

    海量用户积分排名算法探讨

    PS:据说这是迅雷的一道面试题,不过问题本身具有很强的真实性,所以本文打算按照真实场景来考虑,而不局限于面试题的理想环境。首先,我们用一张用户积分表user_score来保存用户的积分信息。表结构:示例数据:下面...

    Cracking the Coding Interview PDF

    本书的题目以算法和数据结构为主,但也分别有一个章节涵盖分布式系统设计,c/c++、java、sql、多线程等知识性的内容。所有题目都有解答思路和答案,算法题目的实现使用了java。只要有一点java基础的同学,应该都可以...

    python入门到高级全栈工程师培训 第3期 附课件代码

    python入门到高级全栈工程师培训视频学习资料;本资料仅用于学习,请查看...11 强插一道面试题 12 Model连表操作梳理 13 多对多自关联 14 Model操作补充 15 再插两道JavaScript面试题 16 Model操作之select_related以及...

Global site tag (gtag.js) - Google Analytics