衡泰数据库面试题

一、某个基金公司有一只基金,持有股票和债券,为了考核该基金,设计几张表来存放数据,定义如下,
HOLD表

《衡泰数据库面试题》
注:改表记录该基金所有日期序列的资产数据,目前展示的是2011-02-01的数据

因为证券代码没法区分出这个资产是股票还是债券,故定义了一张资产类型的映射表MAPPING,如下

《衡泰数据库面试题》

因为债券的原因,其收益率可能没有取到,导致为空,所以又引入了债券的行情表,BOND_SERIES,定义如下,

《衡泰数据库面试题》
注1:债券收益率=当日价格/前日价格-1
注2:里面只记录债券数据,没有股票数据

1.请用一条SQL查询语句写出日期为2011-02-01 基金A所有资产的收益率,返回的结果包括 日期,证券代码,资产类型,和收益率
我的解答:

《衡泰数据库面试题》

2.请用一条SQL查询语句写出日期为2011-02-01基金A所有资产中收益率最高的5只证券,返回的结果包括日期,证券代码,资产类型,收益率和排名
我的解答:

《衡泰数据库面试题》

其实使用rownum是最优的方法,不仅代码量少,而且查询速度也更快

《衡泰数据库面试题》

3.请用一条SQL查询语句写出日期为 2011-02-01 基金A债券分组和股票分组的收益率,返回的结果包括日期,资产类型,收益率
注1:债券分组是该日期所有债券的集合,股票分组是改日所有股票的集合
注2:个券按市值加权获得整体收益率,例如,股票A市值100收益率0.05,股票B市值50,收益率0.10,那么股票分组=2/3乘以0.05 + 1/3乘以0.10
我的解答:

《衡泰数据库面试题》

二、一个公司组织架构如下,公司下面有大部门A,B,C,大部门A下有部门1、部门2,大部门B下有部门3、部门4、部门5,大部门C下有部门6、部门7
公司的组织结构表Department

《衡泰数据库面试题》

员工年薪表Salary

《衡泰数据库面试题》
注1:每一个员工只会有一条薪水记录

1.请用一条SQL语句写出部门A总共的年薪

《衡泰数据库面试题》

2.现在需要这么一条语句,传入部门ID,查询获得该部门所有的年薪之和
注:要考虑不同层次不同的处理情况

《衡泰数据库面试题》

    原文作者:小小数据咖
    原文地址: https://segmentfault.com/a/1190000018632904
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞