2019-07-12

用户投资表invest

userid 用户investdate

投资日期

investamount

投资金额

12019-01-01100

12019-01-02200

12019-01-03300

12019-01-04400

22019-01-01200

22019-01-02300

22019-01-03400

32019-01-01300

32019-01-02400

create table invest(userid string ,investdate string ,investamount string);

insert into invest values(1,'2019-01-01',100);

insert into invest values(1,'2019-01-02',200);

insert into invest values(1,'2019-01-03',300);

insert into invest values(1,'2019-01-04',400);

insert into invest values(2,'2019-01-01',200);

insert into invest values(2,'2019-01-02',300);

insert into invest values(2,'2019-01-03',400);

insert into invest values(3,'2019-01-01',300);

insert into invest values(3,'2019-01-02',400);

insert into invest values(3,'2019-01-04',400);

insert into invest values(1,'2019-01-06',400);

insert into invest values(2,'2019-01-05',400);

1、平均每次投资大于300的用户  (初级)

select userid, avg(investamount)

from invest

group by userid 

having avg(investamount) > 300

2、计算每个人每日的累计投资金额 (中级)

根据用户投资表invest表,生成如下表:

用户userid 投资日期investdate投资金额investamount累计投资

12019/1/1100100

12019/1/2200300

12019/1/3300600

12019/1/44001000

22019/1/1200200

22019/1/2300500

22019/1/3400900

32019/1/1300300

32019/1/2400700

方法一、sum() over()

select userid, investdate ,investamount, sum(investamount) over(partition by userid order by investdate)

from invest

方法二、通过userid 自关联

select a.userid, a.investdate ,a.investamount, sum(b.investamount)  

from invest a left join invest b  on a.userid = b.userid

where a.investdate >= b.investdate

group by  a.userid, a.investdate ,a.investamount

3、找出连续投资三日及以上的用户、开始日期、连续天数 (高级)

userid 用户开始日期连续天数

12019/1/14

22019/1/13

思路:通过 row_number 增加排序列  rn, 然后用  datesub(investdate,rn) ,如果连续会得到一个固定值  ,分组后记录数大于等于3的

select userid,startdate,count(1)

from

(

select  userid,

investdate,

row_number() over(partition by userid order by investdate) rn,

date_sub(investdate,row_number() over(partition by userid order by investdate) -1) startdate

from invest

) a

group by userid,startdate

having  count(1) >= 3;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 2019-07-10 毛雅亭 字数 551 · 阅读 4 2019-06-02 18:39 ...
    毛雅亭阅读 143评论 0 0
  • 十年的时间很快过去了。 这一日,师傅在堂前喝着茶,把我叫了过去。我看着他自顾自的喝茶,还想着是不是师傅想要换茶叶了...
    噗哧_b037阅读 459评论 0 0
  • 体验 快过年了,有期待,有渴望 ,有梦想, 期待能早点见到家人,渴望新的一年能有新的收获,梦想能多多赚钱,...
    彭红霞_a827阅读 89评论 1 1
  • 早上从客栈出来,开车直驱鲁迅故里。 从百草园到三味书屋 第一站:百草园。 “我家的后面有一个很大的园,相传叫做百草...
    halen_ren阅读 251评论 0 0
  • 最近接了一个锅,进入新公司接手了一个进入交付阶段的项目.在codereview的时候发现很多问题,然后开始修复bu...
    McDull_c076阅读 54,745评论 0 6