昨天参加了广联达的笔试题,简单复盘SQL相关的题目。

1.其实这道SQL并不是很难,奈何我都没做对,所以今日复盘一下。

题目:表post_table,有3个字段,uid : 会员id, post_time:发帖时间,content:发帖内容

create table post_table(uid int ,
post_time datetime,
content char(6));
insert into post_table values (1,‘2019-03-01 0:00:00’,‘a’);
insert into post_table values (2,‘2019-03-01 0:00:01’,‘b’);
insert into post_table values (3,‘2019-03-01 0:00:02’,‘c’);
insert into post_table values (3,‘2019-03-01 0:00:03’,‘d’);
insert into post_table values (3,‘2019-03-01 0:00:04’,‘e’);
insert into post_table values (2,‘2019-03-01 0:00:05’,‘f’);
insert into post_table values (2,‘2019-03-01 0:00:06’,‘g’);
insert into post_table values (1,‘2019-03-01 0:00:07’,‘h’);
insert into post_table values (4,‘2019-03-01 0:00:08’,‘i’);
insert into post_table values (4,‘2019-03-01 0:00:09’,‘j’);
insert into post_table values (4,‘2019-03-01 0:00:10’,‘k’);
insert into post_table values (5,‘2019-03-01 0:00:11’,‘l’);

– 1) 当日已发帖会员的人均发帖数量
select count(*)/count(distinct uid)as avg_post from post_table;
广联达数据分析笔试 21届

– 2) 当日连续发帖三次及以上的会员,如表中的uid为3和4的会员;

select distinct p1.uid from
post_table p1,
post_table p2,
post_table p3
where timediff(p3.post_time, p2.post_time)=1
and timediff(p2.post_time, p1.post_time)=1
and p1.uid=p2.uid
and p2.uid=p3.uid

广联达数据分析笔试 21届

2.计算每个项目逐月累计净值(收入-支出),(编程语言自己选择,我用的SQL,今天重新做了一下,发现昨天做的还是不全对,哎!)
广联达数据分析笔试 21届

create table data_table(id int,
date date,
income int,
expand int);
insert into data_table values(1001,‘2016-04-01’,12040,32152);
insert into data_table values(1001,‘2016-05-01’,76537,13964);
insert into data_table values(1001,‘2016-07-01’,73402,29123);
insert into data_table values(1001,‘2016-08-01’,348603,128633);
insert into data_table values(1002,‘2016-07-01’,0,653599.9);
insert into data_table values(1002,‘2016-09-01’,0,686152);
insert into data_table values(1002,‘2016-10-01’,1126840,5362189);
insert into data_table values(1002,‘2016-12-01’,4142040,3421851);
insert into data_table values(1002,‘2017-01-01’,3162040,7020000);
insert into data_table values(1003,‘2017-02-01’,776532.7,0);
insert into data_table values(1003,‘2017-05-01’,564678,309152);
insert into data_table values(1003,‘2017-06-01’,887956,9201330);
insert into data_table values(1003,‘2017-07-01’,7772231,92152);
insert into data_table values(1003,‘2017-08-01’,8376218,6564889);

select b.id,b.date,
sum(a.income)-sum(a.expand) as sum_profit
from data_table a,data_table b
where a.date<=b.date group by b.id,b.date;
广联达数据分析笔试 21届
如若有其他方法欢迎一起交流学习。

相关文章: