資料轉換故事分享一

2021-09-24 22:43:42 字數 1682 閱讀 5662

在某次會員活動中,需要彙總以下資料:

1、總訪問次數:統計某活動首頁pv   --  (visit_counts)

2、總訪問人數:統計某活動首頁uv   --  (visit_persion_counts)

3、總參與人數:統計某活動參與**的人數,去重   -- (participate_counts)

4、總分享數:某活動首頁分享次數    --  (share_counts)

1、總訪問次數、總分享數都是全量統計,包括重複操作;總訪問人數、總參與人數都是人員統計,要去重操作;

2、前端h5開發人員,提供了三個關鍵標識字段:

訪問eventkey:wheelvisitcnt

**eventkey: wheeldrawprize

分享eventkey: wheelshare

2.1 錯誤想法(被h5人稱為物件導向想法):

1、通過eventkey=『wheeldrawprize』,區分出**的;通過eventkey=『wheelshare』,區分出分享的;(這個沒有問題)

2、由於總訪問人既包括**的、分享的、既沒**又沒分享的三種,所以認為對於乙個參與**、分享的人來說他應該有兩個eventkey來標記;(理解上沒有毛病,但實際上是錯誤的)

2.2 錯誤原因:

這個你不要用物件導向的思想去想,首先這個統計針對的某個動作做的統計,這個動作被執行多少次;然後這個動作又有多少人;最後得到統計的參與**人數,分享次數,總訪問人數結果。

所以eventkey=『wheelvisitcnt』得到的就是所有的訪問量;eventkey=『wheeldrawprize』得到的就是所有的參與**量;通過eventkey=『wheelshare』得到的就是所有的分享量。

visit_counts bigint comment "總訪問次數",

sum(case when eventkey='wheelvisitcnt' then 1 else 0 end),

visit_persion_counts bigint comment "總訪問人數",

count(distinct open_id case when eventkey='wheelvisitcnt') as visit_persion_counts,

-- count(distinct openid) as visit_persion_counts,

-- count(distinct case when eventkey='wheelvisitcnt' then open_id else null end) as visit_persion_counts,

participate_counts bigint comment "總參與人數",

count(distinct open_id case when eventkey='wheeldrawprize') as participate_counts,

--count(distinct case when eventkey='wheeldrawprize' then open_id else null end) as participate_counts,

share_counts bigint comment "總分享數",

sum(case when eventkey='wheelshare' then 1 else 0 end) as share_counts,

分享故事,放鬆一下自己

1 建築師 一位夫人打 給建築師,說每當火車經過時,她的睡床就會搖動。這簡直是無稽之談 建築師回答說,我來看看。建築師到達後,夫人建議他躺在床上,體會一下火車經過時的感覺。建築師剛 躺下,夫人的丈夫就回來了。他見此情形,便厲聲喝問 你躺在我妻子的床上幹什麼?建築師戰戰兢兢地回答 我說是在等火車,你會...

分享故事,放鬆一下自己

1 建築師 一位夫人打 給建築師,說每當火車經過時,她的睡床就會搖動。這簡直是無稽之談 建築師回答說,我來看看。建築師到達後,夫人建議他躺在床上,體會一下火車經過時的感覺。建築師剛 躺下,夫人的丈夫就回來了。他見此情形,便厲聲喝問 你躺在我妻子的床上幹什麼?建築師戰戰兢兢地回答 我說是在等火車,你會...

分享乙個網路latency的故事

由於最新的windows 8對於wifi 傳輸有latency的要求,最近一直在忙這件事。ms要求peer到peer之間的lantency要小於幾十個毫秒吧。這段時間可以劃分為一下這幾個部分 根據driver的現狀一開始以為可能跟下面這些因素有關 1.resource,因為driver pre al...