[各品牌商品交易統(tǒng)計] Spark 指標實戰(zhàn)(6)

需求-各品牌商品交易統(tǒng)計

統(tǒng)計周期 統(tǒng)計粒度 指標
最近1劣领、7压汪、30日 品牌 訂單數(shù)
最近1怨喘、7挥吵、30日 品牌 訂單人數(shù)
最近1匠楚、7九巡、30日 品牌 退單數(shù)
最近1聚凹、7枉圃、30日 品牌 退單人數(shù)

建表語句

CREATE EXTERNAL TABLE ads_trade_stats_by_tm
(
    `dt`                      STRING COMMENT '統(tǒng)計日期',
    `recent_days`             BIGINT COMMENT '最近天數(shù),1:最近1天,7:最近7天,30:最近30天',
    `tm_id`                   STRING COMMENT '品牌ID',
    `tm_name`                 STRING COMMENT '品牌名稱',
    `order_count`             BIGINT COMMENT '訂單數(shù)',
    `order_user_count`        BIGINT COMMENT '訂單人數(shù)',
    `order_refund_count`      BIGINT COMMENT '退單數(shù)',
    `order_refund_user_count` BIGINT COMMENT '退單人數(shù)'
) COMMENT '各品牌商品交易統(tǒng)計'

前提

今天為 2020-06-14

完整sql

with
    order_info as (

        select
              1 recent_days,tm_id,tm_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 tm_id,tm_name
        union all

               select
                        recent_days,tm_id,tm_name,
                       sum(if(recent_days = 7,order_count_7d,order_count_30d)) order_count,
                      -- 判斷這個人在最近7天或30天是否下過單
                       count(distinct `if`(if(recent_days = 7,order_count_7d,order_count_30d) >0 ,user_id,null) ) order_user_count
                -- 一個用戶在一天下單的一個商品是一行
               -- 一個人最近30天下單了芜壁,但是最新7天沒有下單
                from dws_trade_user_sku_order_nd
                lateral view explode(`array`( 7, 30)) tmp as recent_days
                where dt='2020-06-14'
                group by recent_days,tm_id,tm_name

        -- union all 就是上下拼接
        -- union : 在union all的基礎(chǔ)上礁凡,再 group by 上下拼接的所有列


    ),
     refund_info as (

        select
              1 recent_days,tm_id,tm_name,
               sum(order_refund_count_1d) order_refund_count,
               count(distinct user_id) order_refund_user_count
        -- 一個用戶在一天下單的一個商品是一行
        from dws_trade_user_sku_order_refund_1d
        where dt='2020-06-14'
        group by tm_id,tm_name
        union all
               select
                        recent_days,tm_id,tm_name,
                       sum(if(recent_days = 7,order_refund_count_7d,order_refund_count_30d)) order_refund_count,
                      -- 判斷這個人在最近7天或30天是否下過單
                       count(distinct `if`(if(recent_days = 7,order_refund_count_7d,order_refund_count_30d) >0 ,user_id,null) ) order_refund_user_count
                -- 一個用戶在一天下單的一個商品是一行
               -- 一個人最近30天下單了高氮,但是最新7天沒有下單
                from dws_trade_user_sku_order_refund_nd
                lateral view explode(`array`( 7, 30)) tmp as recent_days
                where dt='2020-06-14'
                group by recent_days,tm_id,tm_name



    )
insert overwrite table ads_trade_stats_by_tm
select * from ads_trade_stats_by_tm
union
select
      '2020-06-14' dt,
       nvl(order_info.recent_days,refund_info.recent_days) recent_days,
       nvl(order_info.tm_id, refund_info.tm_id) tm_id,
       nvl(order_info.tm_name, refund_info.tm_name) tm_name,
       nvl(order_count,0) ,
       nvl(order_user_count,0) ,
       nvl(order_refund_count,0) ,
       nvl(order_refund_user_count,0)
--
from
     -- 最近30天所有下單的品牌
     order_info
         full join
         -- 所有退單的品牌
         refund_info
on order_info.recent_days = refund_info.recent_days and order_info.tm_id= refund_info.tm_id;

思考步驟

訂單 與 退單 思路相同 ,只簡述 訂單步驟

  1. 算 1日 訂單數(shù) 與 訂單人數(shù)
  select
              1 recent_days,tm_id,tm_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 tm_id,tm_name
  1. 計算 7 30 日
    (1)表 dws_trade_user_sku_order_nd
user_id sku_id tm_id tm_name order_count_7d order_count_30d
33 01 1001 七匹狼 20 60
33 22 1002 皮克 0 30

(2)將上表的數(shù)據(jù) 變成兩份

user_id tm_id tm_name order_count_7d order_count_30d recent_days
用戶id 品牌id 品牌名 7日訂單數(shù) 30日訂單數(shù) 計算天數(shù)
33 1001 七匹狼 20 60 7
33 1002 皮克 0 30 7
33 1001 七匹狼 20 60 30
33 1002 皮克 0 30 30

(3)根據(jù) recent_days,tm_id,tm_name 聚合
(4)選擇有效數(shù)據(jù)

A => if(recent_days = 7,order_count_7d,order_count_30d)

(4)判斷是否 訂單數(shù)>0 ,有效則記錄用戶id顷牌,無效則null
用戶1 訂單1 匹克 籃球鞋
用戶1 訂單2 匹克 拖鞋

計為 兩條記錄

B => `if`( A >0 ,user_id,null)

(5)因為 dws_trade_user_sku_order_nd 的粒度為 sku
防止 有人 在 同一品牌 不同商品 下單
計算下單人數(shù)時:需要對訂單 去重

  count(distinct B ) 
最后編輯于
?著作權(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)容

  • 需求說明如下 統(tǒng)計周期統(tǒng)計粒度指標說明最近7续搀、30日品牌復(fù)購率重復(fù)購買人數(shù)占購買人數(shù)比例 建表語句 前提 今天是 ...
    坨坨的大數(shù)據(jù)閱讀 598評論 0 1
  • 信息流、物流和資金流三大平臺是電子商務(wù)的三個最為重要的平臺菠净。而電子商務(wù)信息系統(tǒng)最核心的能力是大數(shù)據(jù)能力禁舷,包括大數(shù)據(jù)...
    菇菇菇呀閱讀 1,837評論 0 0
  • 儀表盤/首頁,簡單統(tǒng)計毅往,報表頁牵咙,運營快捷口。實際統(tǒng)計情況:訂單(訂單量攀唯,各訂單狀態(tài))洁桌,銷售額,廣告統(tǒng)計侯嘀,活動統(tǒng)計另凌,...
    白駒過_隙閱讀 4,066評論 7 62
  • 電商數(shù)據(jù)分析基礎(chǔ)指標體系(文章來源) 本文主要介紹了電商數(shù)據(jù)分析的基礎(chǔ)指標體系,涵蓋了流量、銷售轉(zhuǎn)化率戒幔、客戶價值吠谢、...
    美瞳的美瞳閱讀 9,977評論 0 46
  • 在電商企業(yè)中,PM往往都不是主導(dǎo)性的崗位诗茎,例如在淘寶的主導(dǎo)是運營工坊,唯品會的主導(dǎo)是能夠拿到什么樣的商品放到平臺上(采...
    野蠻非先生閱讀 2,270評論 1 16