# 3.31恒生电子笔试——数据ETL实习(非标准答案)

题型:

10道选择题+3道SQL编程题+2道数据库(各5小题),貌似蛮多都是原题来着

不定项选择题:涵盖SQL,数据库,数据仓库,ETL过程

比如:、关系表的主键、外键、

1.

修改表结构的sql语句 A

A alter
B create
C desc
D rename

2.

选择正确选项:AD

A 在一个关系表中,主键可唯一标识一行记录
B 一个事务中的某条sql命令提交时,其它sql命令可以不提交
C 一个关系表中的外键必定是另一表中的主键
D 回滚可以在事务失败时,回到操作事务前的数据状态

3.

给出两张表Table1,Table2,结构分别如下:请问哪条语句会将Table2的全部列插入道Table1 : D

Table1
Col1 INT
Col2 CHAR(30)
Table2
Col1 INT
Col2 CHAR (30)
INSERTINTO table1 (table2.col1,table2.col2)
INSERTINTO table1 SELECT COl1, COl2 FROM table2
INSERTINTO table1 VALUES(SELECT COl1,COl2 FROM table2)
INSERTINTO table1 (col1, Col2) VALUES (SELECT Cl1, Cl2 FROM table2)

4.

数据集市和数据仓库的区别描述正确的是() ABC

A 数据仓库主要基于整个企业的数据模型建立;数据集市则一般按照某一特定部门或场景来建立;
B.数据仓库的数据有效周期为中长期甚至永久,但数据集市的数据有效期一般则较短
C.数据仓库中存储整个企业的数据,数据详细程度较高但数据集市的数据详细程度则要低一些,包含概要
D.数据集市的数据组织一般采用星网模型

5.

以下描述ETL过程的主要步骤中,错误的是: B

1)决定数仓中需要的所有的目标数据
2)决定所有的数据源,包括内部和外部的数据源
3)准备从源数据到目标数据的数据映射关系
4)建立全面的数据抽取规则
5)决定数据转换和清洗规则:
6)为综合表制定计划
7)组织数据缓冲区域和检测工具
8)为所有的数据装载编写规程
9)选择ETL工具
10)制定ETL计划
11)维度表的抽取、转换和装载
12)事实表的抽取、转换和装载
A 1
B 6
C 9
D 10
E 9、10、11、12

6.

以下关于数据库事务的说法,哪些是正确的() CD

A 事务特性包含原了性,一致性,隔离性,同步性
B 隔离级别Repeatable read (可重复读)会导致脏读
C 隔离级别Serializable隔离级别是最高的,控制最严格
D 可以通过SQL语来动态调整事务隔离级别

7.

在关系数据库系统中,为了简化用户的查询操作,而又不增加数据的存储空间,常用的方法是创建 C

A 表(table)
B 游标(cursor)
C 视图(view)
D 索引(index)

8.

如图所示,两个关系R1和R2,它们进行() 运算后得到关系R3 D

A 中 
B 并
C 笛卡尔积
D 连接

9.

数据仓库中常见的模型有() ABC

A 雪花模型
B 星型建模
C 第三范式
D 星网模型

10.

典型的元数据包括如下哪些? C

1)数据仓库表的结构
2)数据仓库表的属性
3)数据仓库的源数据
4)数据仓库的数据源
5)源数据到数据仓库的映射
6)数据模型的规格说明
7)抽取日志
8)访问数据的公共例行程序
A 12356
B 123456
C 1235678
D 12345678

SQL编程题(支持若编译不过,可写解题思路,酌情给分)

总体难度不大,需要自己建表,没给数据,一开始以为可以直接查询语句即可,发现怎么都过不了,后来建表之后,也是有一些细节问题,比如建表,一些字符串的字段,加上单引号,却怎么都过不了,耗费很多时间,后来尝试不加,反而过了...平时没怎么练习过建表,更新这些,一下挺陌生,卡住

11.

表D

字段名称 字段类型 中文描述 说明
company varchar(10) 公司名称 主键
agencyid varchar(10) 员工工号 主键
name varchar(20) 员工姓名
dtmonth int 年月 主键
duty varchar(20) 员工职级

表E结构如下:

字段名称 字段类型 中文描述 说明
province varchar(20) 省份
company varchar(10) 公司名称 主键
adearea varchar(8) 办事处名称 主键

表D与表E通过company关联,要求编写SQL语句查询每个员工工号所属的省份。

create D(
	company varchar(10) not null comment'公司名称',
	agencyid varchar(10) not null comment'员工工号',
	name varchar(20) not null comment'员工姓名',
	dtmonth int not null comment'年月',
	duty varchar(20) not null comment'员工职级'
	primary key('company','agencyid','dtmonth')	
)
create E(
	province varchar(20) not null comment'省份',
	company varchar(10) not null comment'公司名称',
	name varchar(8) not null comment'办事处名称',
	primary key('company','adearea')	
)
select
	province
from D
join E
on D.company=E.company

12.

有一张员工工资表(EMP),表有两列: 员工编号(D),工资(SALARY),请给出SQL删除ID重复的记录,只保留第一条,不需要考虑表中存在完全相同记录的情况。

select 
	ID,SALARY 
from 
(
	select 
	ID,
	SALARY ,
	row_number() over(partition by ID order by ID) row_num 
	from EMP) t1 
where row_num = 1

13.

已知一张表S的结构如左下表,怎样通过select语句把它变成右下表的结构,即将竖表转换为横表

姓名 科目 成绩
张三 语文 20
张三 数学 30
张三 英语 50
李四 语文 70
李四 数学 60
李四 英语 90
姓名 语文 数学 英语
张三 20 30 50
李四 70 60 90
create S(
	name varchar(3) not null comment'姓名',
	subject varchar(2) not null comment'科目',
	grade int not null comment'成绩'
)
insert into S(name,subject,grade)
value('张三','语文','20'),('张三','数学','30'),('张三','英语','50'),('李四','语文','70'),('李四','数学','60'),('李四','英语','90')
select 
	name as '姓名',
	max(case subject when '语文' then grade else 0 end) '语文',
   max(case subject when '数学' then grade else 0 end) '数学',
   max(case subject when '英语' then grade else 0 end) '英语'
from S
group by name;

数据库

给若干个表与字段,没有数据。每大题5小问,查询、增加字段、加索引

14.

有一个理财数据库,包括客户Client、资金账户Fund、经理人Manager、投资流水Investment、理财产品Product,表结构如下所示:

Client表:
客户名Cno 	姓名Cname  性别Csex  所在城市Caddr 资金账号Fno
Fund表
资金账号Fno  余额Fbalance
Manager表
经理人工号Mno   姓名Mname  性别Msex  权限Mauth
Investment表
客户号Cno  经理人工号Mno  产品代码Pno  投资金额Iaccount
Produce表
产品代码Pno  产品名称Pname 投资期限Pperiod
说明: 除了Fund表的余额(Fbalance)字段和Investment表的投资金额 (laccount) 字段为number,其他均视为字符串。请回答以下问题:
1、查询所有投资过600571这个产品且单笔投资金额不少于10000的客户的客户号和姓名,且按姓名降序排列
2.给理财产品表Product新增字段产品净值 (Pvalue) ,类型为字符串,长度为32位,不允许为空
3、在投资流水表Investment中,新建客户号、经理人工号和产品代码的唯一索引
4.为表彰业绩优秀的经理人,请查询出投资600571这个产品投资金额在平均值以上的客户的经理人的工号和姓名4现在投资600571这个产品的客户要从自己的资金账户统一追加投资5000元,请操作相关的表

CSDN原题,见(26条消息) 前端 -- 数据库题目_select部分_第12关:客户理财、保险与基金投资总额。_Evan_ZGYF丶的博客-CSDN博客

15.

设有一个投资管理系统,包括用户User、产品Product、交易明细TradeDetail下表所示:

Users表

用户ID 姓名 性别
UserID UserName Ssex

Product表

产品编号 产品名称 产品类型
PrdNo PrdName PrdType

PrdType:S——偏股型,C——货币基金

TradeDetail表

交易日期 产品编号 用户ID 交易类型 交易金额 交易状态T
TradeDate PrdNo UserID TradeType Amount TradeStatus

TradeType:B一申购,S 赎回 TradeStatus: T-交易成功,F一交易失败 TradeDate: 格式为YYYYMMDD 请回答以下问题: 1、请给用户表的用户ID增加一个唯一索引。 2、请按日统计2016年10月份各产品的交易金额(含失败),并按交易日期进行降序排序。 3、将2016年10月31日的所有交易金额大于1000.00的交易状态更新为交易成功。 4、请列出所有购买过货币基金产品的客户姓名 5、请列出2016年10月份申购交易前10的产品

1、create unique index user_ID ON Users(UserID);
2、可使用窗口函数或者group by
select
	sum(Amount)over(partition by TradeDate order by TradeDate desc)
from TradeDetail
where date_format(TradeDate,'YYYYMM')='201610'
3.update TradeDetail
set TradeStatus=T…
where TradeDate = '20161031'
4、
select 
	U.UserName
from
(
	select
		UserID
	from TradeDetail T
	join Product P
	on T.PrdNo=P.PrdNo
	where PrdType='C'
)t1
join Users U 
on t1.UserlD=U.UserID
5.个人理解是筛选出2016年10月份,每个产品的交易金额,前10。使用窗口函数row_number
select
	PrdNo
from
(
select
	row_number(sum(Amount)) row_num
from
where date_format(TradeDate,'YYYYMM')='201610'
group by PrdNo
order by sum(Amount)
)t1
where row_num<=10

补充窗口函数rank、dense_rank、row_number

rank():跳跃排序; dense_rank():连续排序; row_number():没有重复值的排序(记录相等也是不重复的),可以进行分页使用。

rank()函数,是跳跃排序,相同数据排名相同,比如并列第1,则两行数据(这里为rank列)都标为1,下一位将是第3名.中间的2被直接跳过了。排名存在重复值。e.g
成绩 排名
95 1
95 1
90 3
85 4
dense_rank(),这个是连续排序的,比如两条并列第1,则两行数据(这里为rank列)都标为1,下一个排名将是第2名。
成绩 排名
95 1
95 1
90 2
85 3
row_numer(),这个排序函数的特点是相同数据,先查出的排名在前,没有重复值。
成绩 排名
95 1
95 2
90 3
85 4
#我的实习求职记录#
全部评论
兄弟,有面试消息吗?
点赞 回复 分享
发布于 2023-04-05 01:30 陕西

相关推荐

05-24 20:52
东南大学 C++
点赞 评论 收藏
分享
想申请延毕了,找工作找到崩溃,越找就越想摆烂,还有25届的和我一样感受吗?
码农索隆:没事哒,好兄弟,慢慢来,调整心态,车到山前必有路,感到迷茫的时候,多抬头看看
点赞 评论 收藏
分享
叶扰云倾:进度更新,现在阿里云面完3面了,感觉3面答得还行,基本都答上了,自己熟悉的地方也说的比较细致,但感觉面试官有点心不在焉不知道是不是不想要我了,求阿里收留,我直接秒到岗当阿里孝子,学校那边的房子都退租了,下学期都不回学校,全职猛猛实习半年。这种条件还不诱人吗难道 然后现在约到了字节的一面和淘天的复活赛,外加猿辅导。华为笔试完没动静。 美团那边之前投了个base广州的,把我流程卡麻了,应该是不怎么招人,我直接简历挂了,现在进了一个正常的后端流程,还在筛选,不知道还有没有hc。
点赞 评论 收藏
分享
评论
8
39
分享

创作者周榜

更多
牛客网
牛客企业服务