[各分類商品購物車存量Top10] Spark 指標(biāo)實戰(zhàn)(7)

需求

各分類商品購物車存量Top10

前提

今天是 2020-06-14

建表語句

CREATE EXTERNAL TABLE ads_sku_cart_num_top10_by_cate
(
    `dt`             STRING COMMENT '統(tǒng)計日期',
    `category1_id`   STRING COMMENT '一級分類ID',
    `category1_name` STRING COMMENT '一級分類名稱',
    `category2_id`   STRING COMMENT '二級分類ID',
    `category2_name` STRING COMMENT '二級分類名稱',
    `category3_id`   STRING COMMENT '三級分類ID',
    `category3_name` STRING COMMENT '三級分類名稱',
    `sku_id`         STRING COMMENT '商品id',
    `sku_name`       STRING COMMENT '商品名稱',
    `cart_num`       BIGINT COMMENT '購物車中商品數(shù)量',
    `rk`             BIGINT COMMENT '排名'
) COMMENT '各分類商品購物車存量Top10'

完整sql

insert overwrite table ads_sku_cart_num_top10_by_cate
select * from ads_sku_cart_num_top10_by_cate
union
select
        '2020-06-14' dt,
       category1_id,
       category1_name,
       category2_id,
       category2_name,
       category3_id,
       category3_name,
       sku_id,
       sku_name,
       cart_num,
       rk
from (
         select category1_id,
                category1_name,
                category2_id,
                category2_name,
                category3_id,
                category3_name,
                sku_id,
                sku_name,
                cart_num,
                -- 計算當(dāng)前的sku_id在同一個三級分類中的排名
                row_number() over (partition by category3_id order by cart_num desc) rk
         from (
                  select sku_id,
                         -- 所有用戶購物車中添加的此種商品的數(shù)量累加
                         sum(sku_num) cart_num
-- 一個用戶購物車中的一個sku是一行
                  from dwd_trade_cart_full
-- 只統(tǒng)計當(dāng)天用戶購物車中的存量信息
                  where dt = '2020-06-14'
                  group by sku_id
              ) t1
                  left join
              (
                  select id,
                         category1_id,
                         category1_name,
                         category2_id,
                         category2_name,
                         category3_id,
                         category3_name,
                         sku_name
                  from dim_sku_full
                  where dt = '2020-06-14'
              ) t2
              on t1.sku_id = t2.id
     ) t3
where rk <= 10;

步驟

只討論 三級分類

  1. 查詢一天
 select
              1 recent_days,category1_id, category1_name, category2_id,category2_name, category3_id,category3_name,
               sum(order_count_1d) order_count,
               count(distinct user_id) order_user_count
        -- 一個用戶在一天下單的一個商品是一行
        from dws_trade_user_sku_order_1d
        where dt='2020-06-14'
        group by category1_id, category1_name, category2_id,category2_name, category3_id,category3_name

步驟

  1. 統(tǒng)計當(dāng)天用戶購物車中的存量信息蘑拯,根據(jù)某個商品兜粘,統(tǒng)計其在購物車中的數(shù)量
    A表:
select sku_id,
  -- 所有用戶購物車中添加的此種商品的數(shù)量累加
  sum(sku_num) cart_num
-- 一個用戶購物車中的一個sku是一行
from dwd_trade_cart_full
-- 只統(tǒng)計當(dāng)天用戶購物車中的存量信息
where dt = '2020-06-14'
group by sku_id
  1. 獲取商品 品類信息
    B表:
select id,
           category1_id,
           category1_name,
           category2_id,
           category2_name,
           category3_id,
           category3_name,
           sku_name
from dim_sku_full
where dt = '2020-06-14'

  1. 左關(guān)聯(lián)孔轴,運用 開窗函數(shù) 進行排序
    C表
select
...
row_number() over (partition by category3_id order by cart_num desc) rk   ---- 排名
from A
left join B 
on  A.sku_id = B.id
  1. 從 C表中 取到 前10
select
       ...
       rk -- 排名
from   C
where rk <= 10;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末贷洲,一起剝皮案震驚了整個濱河市收厨,隨后出現(xiàn)的幾起案子诵叁,更是在濱河造成了極大的恐慌俩块,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異漫仆,居然都是意外死亡,警方通過查閱死者的電腦和手機盲厌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門吗浩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人懂扼,你說我怎么就攤上這事》” “怎么了?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長灾挨。 經(jīng)常有香客問我,道長瓜饥,這世上最難降的妖魔是什么浴骂? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮狡相,結(jié)果婚禮上食磕,老公的妹妹穿的比我還像新娘。我一直安慰自己彬伦,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著搂橙,像睡著了一般。 火紅的嫁衣襯著肌膚如雪区转。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天侄泽,我揣著相機與錄音蜻韭,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛窄刘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播活翩,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼材泄,長吁一口氣:“原來是場噩夢啊……” “哼吨岭!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起魁巩,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤姐浮,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后肾扰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體集晚,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡换怖,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年沉颂,在試婚紗的時候發(fā)現(xiàn)自己被綠了铸屉。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡顷啼,死狀恐怖昌屉,靈堂內(nèi)的尸體忽然破棺而出间驮,到底是詐尸還是另有隱情,我是刑警寧澤竞帽,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布屹篓,位于F島的核電站,受9級特大地震影響堆巧,放射性物質(zhì)發(fā)生泄漏泼菌。R本人自食惡果不足惜灶轰,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一刷钢、第九天 我趴在偏房一處隱蔽的房頂上張望内地。 院中可真熱鬧,春花似錦非凌、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至玖媚,卻和暖如春箕肃,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背今魔。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工勺像, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人错森。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓吟宦,卻偏偏與公主長得像,于是被迫代替她去往敵國和親涩维。 傳聞我的和親對象是個殘疾皇子殃姓,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內(nèi)容