Hive Sql練習(xí)

  • SQL1:

domain time traffic(T)
gifshow.com 2019/01/01 5
yy.com 2019/01/01 4
huya.com 2019/01/01 1
gifshow.com 2019/01/20 6
gifshow.com 2019/02/01 8
yy.com 2019/01/20 5
gifshow.com 2019/02/02 7
需求:統(tǒng)計(jì)每個(gè)用戶的累計(jì)訪問量 一個(gè)SQL搞定
domain month traffics totals
gifshow.com 2019-01 11 11
gifshow.com 2019-02 15 26
yy.com 2019-01 9 9
huya.com 2019-01 1 1

SELECT t2.domain,
       t2.month,
       t2.traffics,
       ( t2.traffics + t2.lag1 ) AS totals
FROM   (SELECT t1.domain,
               t1.month,
               t1.traffics,
               Lag(traffics, 1, 0)
                 OVER (
                   partition BY domain
                   ORDER BY month) lag1
        FROM   (SELECT t.domain,
                       t.month,
                       Sum(t.traffic) traffics
                FROM   (SELECT domain,
                               Substr(From_unixtime(Unix_timestamp(time, 'yyyy/MM/dd'), 'yyyy-MM-dd'), 1, 7) month,
                               traffic
                        FROM   traffic) t
                GROUP  BY t.month,
                          t.domain) t1) t2;
  • SQL2:

uid pid
user1 a
user2 b
.......
1)uv ==> uid cnt
2)統(tǒng)計(jì)每個(gè)產(chǎn)品top3的用戶信息 ==> pid uid cnt

SELECT uid,
       Count(DISTINCT pid)
FROM   user_product
GROUP  BY uid;


SELECT t1.pid,
       t1.uid,
       t1.cnt
FROM   (SELECT t.pid,
               t.uid,
               t.cnt,
               Row_number()
                 OVER (
                   partition BY pid
                   ORDER BY cnt DESC) rank
        FROM   (SELECT pid,
                       uid,
                       Count(*) cnt
                FROM   user_product
                GROUP  BY pid,
                          uid) t) t1
WHERE  t1.rank <= 3;
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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