#!/bin/sh
#最常購買門店
orgsql="
use tmp;
drop table if exists member_offline_org_prefer;
create table member_offline_org_prefer as
select * from (
select a.*,row_number() over(partition by a.vipcardno order by a.ordernum desc) as rn from(
select vipcardno,orgcode,count(1) ordernum from(
select vipcardno,orgcode,saleno from sourcedata.posdmdetails group by vipcardno,orgcode,saleno)t group by vipcardno,orgcode )a )t where rn<=1
"#hive -e "$orgsql"
#線下購買時間偏好,沒有時間,只有日結日期,暫不做
#線下品類偏好,目前沒有品類資料,暫不做
#線下商品偏好
offlineproductsql="
use tmp;
drop table if exists member_offline_product_prefer;
create table member_offline_product_prefer as
select * from(
select a.*,row_number() over(partition by a.vipcardno order by a.num desc) as rn from(
select vipcardno,itemid,count(1) num from sourcedata.posdmdetails group by vipcardno,itemid)a) t where rn<=10
"#hive -e "$offlineproductsql"
#線下會員訂單數中間表
offlineordernumsql="
use tmp;
drop table if exists member_offline_ordernum;
create table member_offline_ordernum as
select vipcardno,
count(1) offline_total_ordernum,
sum(case when year(rjdate)=year(current_timestamp) then 1 else 0 end) offline_year_ordernum,
sum(case when year(rjdate)=year(current_timestamp)-1 then 1 else 0 end) offline_last_year_ordernum,
sum(case when rjdate>= date_sub(current_timestamp,30) then 1 else 0 end) offline_last_1m_ordernum,
sum(case when rjdate>= date_sub(current_timestamp,90) then 1 else 0 end) offline_last_3m_ordernum,
sum(case when rjdate>= date_sub(current_timestamp,180) then 1 else 0 end) offline_last_6m_ordernum
from(
select vipcardno,orgcode,saleno,rjdate from sourcedata.posdmdetails where create_month >='2016-01'
group by vipcardno,orgcode,saleno,rjdate)t group by vipcardno
"#hive -e "$offlineordernumsql"
#線下會員購買門店數中間表
offlineogrnumsql="
use tmp;
drop table if exists member_offline_orgnum;
create table member_offline_orgnum as
select vipcardno,count(1) offline_orgnum from(
select vipcardno,orgcode from sourcedata.posdmdetails where create_month>='2016-01' group by vipcardno,orgcode)t group by vipcardno
"#hive -e "$offlineogrnumsql"
#最後一次購買門店
lastorgsql="
use tmp;
drop table if exists member_offline_last_org;
create table member_offline_last_org as
select * from(
select a.*,row_number() over(partition by a.vipcardno order by a.offline_latest_buy_time desc) as rn from(
select vipcardno,orgcode,max(rjdate) offline_latest_buy_time from sourcedata.posdmdetails group by vipcardno,orgcode)a)t where rn<=1
"#hive -e "$lastorgsql"
#left join c表獲取門店數是為了避免使用count distinct 效率太低
hive -e "$offlinesql"
使用者畫像 使用者畫像之新使用者分類
使用者畫像的簡單介紹 使用者畫像是一種勾畫目標使用者 聯絡使用者訴求與設計方向的有效工具,利用使用者的基本屬性,訪問特徵,交易特徵,社交特徵及風險特徵等組合的資訊形成一些列的使用者標籤組合稱之為使用者畫像。構建使用者畫像的目的 使用者運營 活動運營過程中,制定策略,對使用者精準投放策略,促使平台引流...
使用者畫像標籤維度 使用者畫像之標籤權重演算法
感謝大家長期以來對專欄的關注,最近工作比較忙,好久沒更新了。接下來的幾篇文章想和大家分享下關於使用者畫像的一些東西。今天我們先從使用者畫像的標籤權重開始聊起吧。使用者畫像 即使用者資訊標籤化,通過收集使用者社會屬性 消費習慣 偏好特徵等各個維度資料,進而對使用者或者產品特徵屬性的刻畫,並對這些特徵分...
使用者畫像 如何構建使用者畫像
1 使用者畫像是什麼 what 2 為什麼要構建使用者畫像 why 3 如何構建使用者畫像 how 下文將會對這三部分內容做詳細介紹。1 什麼是使用者畫像 使用者畫像是一種用來描述產品目標使用者特徵的使用者研究方法,在實際操作的過程中往往會以最為淺顯和貼近生活的標籤將使用者的屬性 行為與需求聯絡起來...