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、計算每個人每日的累計投資金額 (中級)

根據(jù)用戶投資表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?自關(guān)聯(lián)

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、找出連續(xù)投資三日及以上的用戶、開始日期、連續(xù)天數(shù) (高級)

userid?用戶開始日期連續(xù)天數(shù)

12019/1/14

22019/1/13

思路:通過 row_number 增加排序列 ?rn, 然后用 ?datesub(investdate,rn) ,如果連續(xù)會得到一個固定值 ?,分組后記錄數(shù)大于等于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;

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 2019-07-10 毛雅亭 字?jǐn)?shù) 551 · 閱讀 4 2019-06-02 18:39 ...
    毛雅亭閱讀 174評論 0 0
  • 十年的時間很快過去了。 這一日,師傅在堂前喝著茶,把我叫了過去。我看著他自顧自的喝茶,還想著是不是師傅想要換茶葉了...
    噗哧_b037閱讀 470評論 0 0
  • 體驗(yàn) 快過年了,有期待,有渴望 ,有夢想, 期待能早點(diǎn)見到家人,渴望新的一年能有新的收獲,夢想能多多賺錢,...
    彭紅霞_a827閱讀 102評論 1 1
  • 早上從客棧出來,開車直驅(qū)魯迅故里。 從百草園到三味書屋 第一站:百草園。 “我家的后面有一個很大的園,相傳叫做百草...
    halen_ren閱讀 321評論 0 0
  • 最近接了一個鍋,進(jìn)入新公司接手了一個進(jìn)入交付階段的項(xiàng)目.在codereview的時候發(fā)現(xiàn)很多問題,然后開始修復(fù)bu...
    McDull_c076閱讀 54,917評論 0 6

友情鏈接更多精彩內(nèi)容