loghubods.ods_user_active_log_info_day.sql 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421
  1. --odps sql
  2. --********************************************************************--
  3. --author:李晓阳
  4. --create time:2025-07-30 11:36:56
  5. --desc mid区分渠道承接和日常的明细数据表 (优化上线)
  6. --********************************************************************--
  7. CREATE TABLE IF NOT EXISTS loghubods.ods_user_active_log_info_day
  8. (
  9. apptype STRING COMMENT '应用类型'
  10. ,loginuid STRING COMMENT '用户id'
  11. ,opengid STRING COMMENT '群id'
  12. ,type STRING COMMENT '群类型'
  13. ,sencetype STRING COMMENT '群类型_编码'
  14. ,hotsencetype STRING COMMENT '热启动群类型_编码'
  15. ,machinecode STRING COMMENT '设备唯一标识'
  16. ,subsessionid STRING COMMENT '子会话ID'
  17. ,sessionid STRING COMMENT '会话ID'
  18. ,rootsourceid STRING COMMENT '根来源ID'
  19. ,rootsessionid STRING COMMENT '根会话ID'
  20. ,layer BIGINT COMMENT '用户分享层级'
  21. ,channel STRING COMMENT '渠道名称'
  22. ,channel_shortname STRING COMMENT '渠道简称'
  23. ,push_type STRING COMMENT '推送类型(承接/日常/未知)'
  24. ,sub_channel STRING COMMENT '子渠道标识'
  25. ,channel_type STRING COMMENT '渠道类型分类'
  26. ,channel_type_frist STRING COMMENT '渠道类型前缀'
  27. ,channel_id BIGINT COMMENT '渠道类型ID'
  28. ,level_type STRING COMMENT '外部首层、非外部首层'
  29. ,user_share_depth BIGINT COMMENT '分享层级'
  30. ,browse_time STRING COMMENT '访问时间'
  31. )
  32. PARTITIONED BY
  33. (
  34. dt STRING COMMENT '数据日期'
  35. )
  36. STORED AS ALIORC
  37. TBLPROPERTIES ('columnar.nested.type' = 'true','comment' = 'mid区分渠道承接和日常的明细数据表')
  38. ;
  39. --ALTER TABLE loghubods.ods_user_active_log_info_day ADD COLUMNS (channel_type_okr string )
  40. --ALTER TABLE loghubods.ods_user_active_log_info_day ADD COLUMNS (browse_time string COMMENT '访问时间');
  41. --ALTER TABLE loghubods.ods_user_active_log_info_day ADD COLUMNS (real_user_share_depth string --COMMENT '真实层级');
  42. --ALTER TABLE loghubods.ods_user_active_log_info_day ADD COLUMNS (clienttimestamp string );
  43. INSERT OVERWRITE TABLE loghubods.ods_user_active_log_info_day PARTITION (dt = '${day}')
  44. WITH -- 1. 基础用户活跃日志CTE:解析JSON字段,过滤公共条件
  45. base_useractive AS
  46. (
  47. SELECT dt
  48. ,apptype
  49. ,machinecode
  50. ,subsessionid
  51. ,sessionid
  52. ,businesstype
  53. ,GET_JSON_OBJECT(extparams,'$.rootSourceId') AS root_source_id
  54. ,GET_JSON_OBJECT(extparams,'$.rootSessionId') AS root_session_id
  55. ,GET_JSON_OBJECT(extparams,'$.userShareDepth') AS user_share_depth
  56. ,extparams
  57. ,loginuid
  58. ,opengid
  59. ,CASE WHEN opengid = '-1' THEN '单聊'
  60. WHEN opengid = '-2' THEN '获取失败'
  61. WHEN LENGTH(opengid) > 4 THEN '群聊'
  62. END AS type -- ,pagesource
  63. ,senceType AS sencetype
  64. ,GET_JSON_OBJECT(extParams,'$.hotSenceType') AS hotsencetype
  65. ,from_unixtime(cast(clienttimestamp as BIGINT )/1000) browse_time
  66. ,clienttimestamp
  67. FROM loghubods.useractive_log
  68. WHERE dt = '${day}'
  69. AND businesstype = 'path'
  70. ) -- 2. 公众号买号分组表
  71. ,gzh_buy_group AS
  72. (
  73. SELECT root_source_id AS gzh_buy_root
  74. FROM loghubods.changwen_rootsourceid_group
  75. WHERE dt = MAX_PT('loghubods.changwen_rootsourceid_group')
  76. AND group_name = '公众号买号'
  77. ) -- 3. 服务号信息表(用于服务号代运营场景)
  78. ,service_account AS
  79. (
  80. SELECT gzh.gh_id
  81. ,account.channel
  82. ,CASE WHEN gzh.type = 0 THEN '公众号'
  83. ELSE '服务号'
  84. END AS account_type
  85. FROM loghubods.content_platform_account account
  86. LEFT JOIN loghubods.content_platform_gzh_account gzh
  87. ON account.id = gzh.create_account_id
  88. WHERE gzh.type != 0 -- 仅保留服务号
  89. GROUP BY gzh.gh_id
  90. ,account.channel
  91. ,CASE WHEN gzh.type = 0 THEN '公众号'
  92. ELSE '服务号'
  93. END
  94. ) -- 4. 长文数据与分组关联表
  95. ,long_articles_info AS
  96. (
  97. SELECT a.rootsourceid
  98. ,a.ghid
  99. ,c.group_source_name
  100. ,a.push_type
  101. FROM loghubods.long_articles_root_source_id a
  102. LEFT JOIN loghubods.publish_account b
  103. ON a.ghid = b.gh_id
  104. LEFT JOIN loghubods.wx_statistics_group_source_account c
  105. ON b.id = c.account_id
  106. WHERE a.dt = MAX_PT('loghubods.long_articles_root_source_id')
  107. GROUP BY a.rootsourceid
  108. ,a.ghid
  109. ,c.group_source_name
  110. ,a.push_type
  111. ) -- 5. 腾讯投放记录表
  112. ,ad_put_flow_tencent AS
  113. (
  114. SELECT root_source_id
  115. ,put_carrier_id
  116. ,put_type_one
  117. ,put_type_two
  118. ,channel
  119. FROM loghubods.ad_put_flow_record_tencent_day
  120. WHERE dt = '${day}'
  121. GROUP BY root_source_id
  122. ,put_carrier_id
  123. ,put_type_one
  124. ,put_type_two
  125. ,channel
  126. ) -- 主查询:通过CASE WHEN和LEFT JOIN实现所有渠道类型的统一处理
  127. SELECT b.apptype
  128. ,b.loginuid
  129. ,b.opengid
  130. ,b.type
  131. ,b.sencetype
  132. ,b.hotsencetype
  133. ,b.machinecode
  134. ,b.subsessionid
  135. ,b.sessionid
  136. ,b.root_source_id AS rootsourceid
  137. ,b.root_session_id AS rootsessionid -- 计算层级layer
  138. ,CASE WHEN b.root_source_id REGEXP 'touliu_tencentwbqw_|dyyqw_' AND t9.channel REGEXP 'xycsd|csaq|shy|jxjx|gzcr|xyjj|jxatm|xjcy|yqyx|hbwq|jxxm|gzmy|cdjh|gzjr|gzxts|twhc|qdjdz|sjzyd|gzyhc|djh|gzlx|yywl|szjn|gzdd1|cqqd|cqslh|hzjy|hzjh|sclh|xyhc|snss' --AND t9.layer_type ='特殊首层'
  139. THEN IF(CAST(b.user_share_depth AS INT) <= 1,1,2)
  140. ELSE IF(CAST(b.user_share_depth AS INT) = 0,1,2)
  141. END AS layer -- 计算渠道名称、简称
  142. ,CASE
  143. -- 公众号即时回复
  144. WHEN b.root_source_id REGEXP 'dyyjs_'
  145. AND SUBSTR(b.root_source_id,7,4) = 'null'
  146. AND t3.ghid_list = 'gh_580589404a08' THEN '浩讯'
  147. WHEN b.root_source_id REGEXP 'dyyjs_'
  148. AND SUBSTR(b.root_source_id,7,4) = 'null'
  149. AND t3.ghid_list = 'gh_505269831752' THEN '恒创'
  150. WHEN b.root_source_id REGEXP 'dyyjs_' THEN t4.company -- 企微外部合作
  151. WHEN b.root_source_id REGEXP 'touliu_tencentwbqw_|dyyqw_' THEN SPLIT_PART(b.root_source_id,'_',2) -- 服务号代运营
  152. WHEN b.root_source_id REGEXP 'fwhhzdyy_|fwhdyy_' THEN COALESCE(s.channel,'') -- 公众号买号/长文
  153. WHEN b.root_source_id REGEXP 'longArticles_' THEN COALESCE(l.group_source_name,'') -- 其他渠道
  154. ELSE ''
  155. END AS channel -- 渠道简称(逻辑与channel一致,仅部分场景有简写)
  156. ,CASE WHEN b.root_source_id REGEXP 'dyyjs_'
  157. AND SUBSTR(b.root_source_id,7,4) = 'null'
  158. AND t3.ghid_list = 'gh_580589404a08' THEN 'hx'
  159. WHEN b.root_source_id REGEXP 'dyyjs_'
  160. AND SUBSTR(b.root_source_id,7,4) = 'null'
  161. AND t3.ghid_list = 'gh_505269831752' THEN 'hc'
  162. WHEN b.root_source_id REGEXP 'dyyjs_' THEN t4.company_code
  163. WHEN b.root_source_id REGEXP 'touliu_tencentwbqw_|dyyqw_' THEN SPLIT_PART(b.root_source_id,'_',2)
  164. ELSE ''
  165. END AS channel_shortname -- 推送类型
  166. ,CASE
  167. -- 公众号/服务号投流、企微投流:从长文数据或投放记录获取
  168. WHEN b.root_source_id REGEXP 'touliu_tencentgzh_|touliu_tencentGzhArticle_|GzhTouLiu_Articles_gh|fwhtouliu_|touliu_tencentqw_|WeCom_|daitou_tencentgzh|DaiTou_gh' THEN COALESCE(t5.push_type,'未知') -- 公众号即时回复、小程序投流:固定为承接
  169. WHEN b.root_source_id REGEXP 'dyyjs_|touliu_tencent_' THEN '承接' -- 其他渠道:固定为日常
  170. ELSE '日常'
  171. END AS push_type -- 子渠道
  172. ,CASE WHEN b.root_source_id REGEXP 'dyyjs_' THEN t3.ghid_list
  173. WHEN b.root_source_id REGEXP 'touliu_tencentwbqw_|dyyqw_' THEN t6.put_carrier_id
  174. WHEN b.root_source_id REGEXP 'fwhhzdyy_|fwhdyy_' THEN COALESCE(s.gh_id,'')
  175. WHEN b.root_source_id REGEXP 'longArticles_' THEN COALESCE(l.ghid,'')
  176. WHEN b.root_source_id REGEXP 'touliu_tencentgzh_|touliu_tencentGzhArticle_|GzhTouLiu_Articles_gh' AND b.root_source_id NOT REGEXP 'fwhtouliu_' THEN COALESCE(t5.ghid,'')
  177. WHEN b.root_source_id REGEXP 'fwhtouliu_' THEN COALESCE(t5.ghid,'')
  178. ELSE ''
  179. END AS sub_channel -- 渠道类型(统一映射)
  180. ,CASE WHEN b.root_source_id REGEXP 'longArticles_' AND g.gzh_buy_root IS NOT NULL THEN '公众号买号'
  181. WHEN b.root_source_id REGEXP 'longArticles_'
  182. AND g.gzh_buy_root IS NULL
  183. AND t8.rootsourceid IS NULL THEN '公众号代运营-Daily-系统'
  184. WHEN b.root_source_id REGEXP 'dyyjs_' THEN '公众号合作-即转-稳定'
  185. WHEN b.root_source_id REGEXP 'fwhtouliu_' THEN '服务号投流'
  186. WHEN b.root_source_id REGEXP 'touliu_tencent_' THEN '小程序投流-稳定'
  187. WHEN b.root_source_id REGEXP 'touliu_tencentgzh_|touliu_tencentGzhArticle_|GzhTouLiu_Articles_gh' AND b.root_source_id NOT REGEXP 'fwhtouliu_' THEN '公众号投流-稳定'
  188. WHEN b.root_source_id REGEXP 'touliu_tencentqw_|WeCom_' AND t7.rootsourceid IS NULL THEN '企微投放'
  189. WHEN b.root_source_id REGEXP 'touliu_tencentwbqw_|dyyqw_' AND t6.root_source_id IS NOT NULL THEN '群/企微合作-稳定' --WHEN b.root_source_id REGEXP 'daitou_tencentgzh|DaiTou_gh' THEN '90公众号代投'
  190. WHEN b.root_source_id REGEXP 'qwsq_' AND t7.rootsourceid IS NOT NULL THEN '企微投放-存量拉群'
  191. WHEN b.root_source_id REGEXP 'fwhhzdyy_|fwhdyy_' THEN '服务号合作-Daily-自选' --WHEN b.root_source_id REGEXP 'fwhmh_' THEN '92服务号买号'
  192. WHEN b.root_source_id REGEXP 'longArticles_'
  193. AND g.gzh_buy_root IS NULL
  194. AND t8.rootsourceid IS NOT NULL THEN '公众号合作-Daily-自选'
  195. WHEN b.root_source_id REGEXP 'touliu_tencentqw_|WeCom_|qwmf_' AND t7.rootsourceid IS NOT NULL THEN '微信群买粉'
  196. WHEN b.root_source_id REGEXP 'daitou_tencentgzh|DaiTou_gh' THEN '公众号完全代投放'
  197. WHEN b.root_source_id REGEXP 'fwhmh_' THEN '服务号买号'
  198. ELSE '内部'
  199. END AS channel_type
  200. ,CASE WHEN b.root_source_id REGEXP 'longArticles_' AND g.gzh_buy_root IS NOT NULL THEN 'longArticles_'
  201. WHEN b.root_source_id REGEXP 'longArticles_'
  202. AND g.gzh_buy_root IS NULL
  203. AND t8.rootsourceid IS NULL THEN 'longArticles_'
  204. WHEN b.root_source_id REGEXP 'dyyjs_' THEN 'dyyjs_'
  205. WHEN b.root_source_id REGEXP 'fwhtouliu_' THEN 'fwhtouliu_'
  206. WHEN b.root_source_id REGEXP 'touliu_tencent_' THEN 'touliu_tencent_'
  207. WHEN b.root_source_id REGEXP 'touliu_tencentgzh_|touliu_tencentGzhArticle_|GzhTouLiu_Articles_gh' AND b.root_source_id NOT REGEXP 'fwhtouliu_' THEN 'touliu_tencentgzh_'
  208. WHEN b.root_source_id REGEXP 'touliu_tencentqw_|WeCom_' AND t7.rootsourceid IS NULL THEN 'touliu_tencentqw_'
  209. WHEN b.root_source_id REGEXP 'touliu_tencentwbqw_|dyyqw_' AND t6.root_source_id IS NOT NULL THEN 'touliu_tencentwbqw_' --WHEN b.root_source_id REGEXP 'daitou_tencentgzh|DaiTou_gh' THEN '90公众号代投'
  210. WHEN b.root_source_id REGEXP 'qwsq_' AND t7.rootsourceid IS NOT NULL THEN 'qwsq_'
  211. WHEN b.root_source_id REGEXP 'fwhhzdyy_|fwhdyy_' THEN 'fwhhzdyy_' --WHEN b.root_source_id REGEXP 'fwhmh_' THEN '92服务号买号'
  212. WHEN b.root_source_id REGEXP 'longArticles_'
  213. AND g.gzh_buy_root IS NULL
  214. AND t8.rootsourceid IS NOT NULL THEN 'longArticles_'
  215. WHEN b.root_source_id REGEXP 'touliu_tencentqw_|WeCom_|qwmf_' AND t7.rootsourceid IS NOT NULL THEN 'WeCom_'
  216. WHEN b.root_source_id REGEXP 'daitou_tencentgzh|DaiTou_gh' THEN 'DaiTou_gh'
  217. WHEN b.root_source_id REGEXP 'fwhmh_' THEN 'fwhmh_'
  218. ELSE '内部'
  219. END AS channel_type_frist -- 渠道ID(与channel_type对应)
  220. ,CASE WHEN b.root_source_id REGEXP 'longArticles_' AND g.gzh_buy_root IS NOT NULL THEN 3
  221. WHEN b.root_source_id REGEXP 'longArticles_' AND g.gzh_buy_root IS NULL THEN 1
  222. WHEN b.root_source_id REGEXP 'dyyjs_' THEN 2
  223. WHEN b.root_source_id REGEXP 'fwhtouliu_' THEN 4
  224. WHEN b.root_source_id REGEXP 'touliu_tencent_' THEN 5
  225. WHEN b.root_source_id REGEXP 'touliu_tencentgzh_|touliu_tencentGzhArticle_|GzhTouLiu_Articles_gh' AND b.root_source_id NOT REGEXP 'fwhtouliu_' THEN 6
  226. WHEN b.root_source_id REGEXP 'touliu_tencentqw_|WeCom_' AND t7.rootsourceid IS NULL THEN 7
  227. WHEN b.root_source_id REGEXP 'touliu_tencentwbqw_|dyyqw_' AND t6.root_source_id IS NOT NULL THEN 8 --WHEN b.root_source_id REGEXP 'daitou_tencentgzh|DaiTou_gh' THEN 90
  228. WHEN b.root_source_id REGEXP 'qwsq_' AND t7.rootsourceid IS NOT NULL THEN 90
  229. WHEN b.root_source_id REGEXP 'fwhhzdyy_|fwhdyy_' THEN 91 --WHEN b.root_source_id REGEXP 'fwhmh_' THEN 92
  230. WHEN b.root_source_id REGEXP 'longArticles_'
  231. AND g.gzh_buy_root IS NULL
  232. AND t8.rootsourceid IS NOT NULL THEN 92
  233. WHEN b.root_source_id REGEXP 'touliu_tencentqw_|WeCom_|qwmf_' AND t7.rootsourceid IS NOT NULL THEN 93
  234. WHEN b.root_source_id REGEXP 'daitou_tencentgzh|DaiTou_gh' THEN 94
  235. WHEN b.root_source_id REGEXP 'fwhmh_' THEN 95
  236. ELSE 9999999
  237. END AS channel_id
  238. ,CASE WHEN b.root_source_id REGEXP 'touliu_tencentwbqw_|dyyqw_' --AND t9.layer_type ='特殊首层'
  239. AND t9.channel REGEXP 'xycsd|csaq|shy|jxjx|gzcr|xyjj|jxatm|xjcy|yqyx|hbwq|jxxm|gzmy|cdjh|gzjr|gzxts|twhc|qdjdz|sjzyd|gzyhc|djh|gzlx|yywl|szjn|gzdd1|cqqd|cqslh|hzjy|hzjh|sclh|xyhc|snss'
  240. AND b.user_share_depth <= 1 THEN '外部首层'
  241. WHEN b.root_source_id REGEXP 'touliu_tencentwbqw_|dyyqw_' --AND t9.layer_type ='非特殊首层'
  242. AND t9.channel NOT REGEXP 'xycsd|csaq|shy|jxjx|gzcr|xyjj|jxatm|xjcy|yqyx|hbwq|jxxm|gzmy|cdjh|gzjr|gzxts|twhc|qdjdz|sjzyd|gzyhc|djh|gzlx|yywl|szjn|gzdd1|cqqd|cqslh|hzjy|hzjh|sclh|xyhc|snss'
  243. AND b.user_share_depth = 0 THEN '外部首层'
  244. WHEN b.root_source_id NOT REGEXP 'touliu_tencentwbqw_|dyyqw_' AND b.user_share_depth = 0 THEN '外部首层'
  245. ELSE '非外部首层'
  246. END AS level_type
  247. ,CASE WHEN b.root_source_id REGEXP 'touliu_tencentwbqw_|dyyqw_' AND t9.channel REGEXP 'xycsd|csaq|shy|jxjx|gzcr|xyjj|jxatm|xjcy|yqyx|hbwq|jxxm|gzmy|cdjh|gzjr|gzxts|twhc|qdjdz|sjzyd|gzyhc|djh|gzlx|yywl|szjn|gzdd1|cqqd|cqslh|hzjy|hzjh|sclh|xyhc|snss' --AND t9.layer_type ='特殊首层'
  248. THEN IF(CAST(b.user_share_depth AS INT) <= 1,0,b.user_share_depth)
  249. ELSE b.user_share_depth
  250. END user_share_depth
  251. ,CASE WHEN b.root_source_id REGEXP 'longArticles_' AND g.gzh_buy_root IS NOT NULL THEN '3公众号买号'
  252. WHEN b.root_source_id REGEXP 'longArticles_'
  253. AND g.gzh_buy_root IS NULL
  254. AND t8.rootsourceid IS NULL THEN '1公众号代运营-Daily'
  255. WHEN b.root_source_id REGEXP 'dyyjs_' THEN '2公众号代运营-即转'
  256. WHEN b.root_source_id REGEXP 'fwhtouliu_' THEN '4服务号投流'
  257. WHEN b.root_source_id REGEXP 'touliu_tencent_' THEN '5小程序投流'
  258. WHEN b.root_source_id REGEXP 'touliu_tencentgzh_|touliu_tencentGzhArticle_|GzhTouLiu_Articles_gh' AND b.root_source_id NOT REGEXP 'fwhtouliu_' THEN '6公众号投流'
  259. WHEN b.root_source_id REGEXP 'touliu_tencentqw_|WeCom_' AND t7.rootsourceid IS NULL THEN '7企微'
  260. WHEN b.root_source_id REGEXP 'touliu_tencentwbqw_|dyyqw_' AND t6.root_source_id IS NOT NULL THEN '8企微外部合作' --WHEN b.root_source_id REGEXP 'daitou_tencentgzh|DaiTou_gh' THEN '90公众号代投'
  261. WHEN b.root_source_id REGEXP 'qwsq_' AND t7.rootsourceid IS NOT NULL THEN '90企微投放-人群包-存量拉群'
  262. WHEN b.root_source_id REGEXP 'fwhhzdyy_|fwhdyy_' THEN '91服务号代运营-Daily' --WHEN b.root_source_id REGEXP 'fwhmh_' THEN '92服务号买号'
  263. WHEN b.root_source_id REGEXP 'longArticles_'
  264. AND g.gzh_buy_root IS NULL
  265. AND t8.rootsourceid IS NOT NULL THEN '92公众号代运营-Daily-合作'
  266. WHEN b.root_source_id REGEXP 'touliu_tencentqw_|WeCom_|qwmf_' AND t7.rootsourceid IS NOT NULL THEN '93企微买群粉'
  267. WHEN b.root_source_id REGEXP 'daitou_tencentgzh|DaiTou_gh' THEN '94公众号代投'
  268. WHEN b.root_source_id REGEXP 'fwhmh_' THEN '95服务号买号'
  269. ELSE '内部'
  270. END AS channel_type_okr
  271. ,b.browse_time
  272. ,b.user_share_depth
  273. ,b.clienttimestamp
  274. FROM base_useractive b -- 关联公众号买号分组表
  275. LEFT JOIN gzh_buy_group g
  276. ON b.root_source_id = g.gzh_buy_root -- 关联公众号即时回复所需的ghid信息
  277. LEFT JOIN (
  278. SELECT root_source_id
  279. ,CONCAT_WS(',',COLLECT_SET(put_carrier_id)) AS ghid_list
  280. FROM ad_put_flow_tencent
  281. WHERE root_source_id REGEXP 'dyyjs_'
  282. GROUP BY root_source_id
  283. ) t3
  284. ON b.root_source_id = t3.root_source_id -- 关联公众号即时回复所需的公司信息
  285. LEFT JOIN loghubods.dim_company_price_info t4
  286. ON b.root_source_id = t4.root_source_id
  287. AND t4.dt = '${day}' -- 关联投流相关的推送类型信息
  288. LEFT JOIN (
  289. SELECT rootsourceid AS root_source_id
  290. ,CASE WHEN MAX(push_type) = '1' THEN '承接'
  291. WHEN MAX(push_type) = '2' THEN '日常'
  292. WHEN MAX(push_type) REGEXP '菜单|自动回复|即时欢迎语' THEN '承接'
  293. WHEN MAX(push_type) REGEXP '日常推送|社群' THEN '日常'
  294. WHEN MAX(push_type) REGEXP '对外信息展示' THEN '承接'
  295. WHEN MAX(push_type) REGEXP '朋友圈' THEN '日常'
  296. ELSE '未知'
  297. END AS push_type
  298. ,ghid
  299. FROM (
  300. SELECT rootsourceid
  301. ,CAST(push_type AS STRING) AS push_type
  302. ,ghid
  303. FROM loghubods.long_articles_root_source_id
  304. WHERE dt = MAX_PT("loghubods.long_articles_root_source_id")
  305. UNION
  306. SELECT root_source_id AS rootsourceid
  307. ,put_type_two AS push_type
  308. ,put_carrier_id
  309. FROM loghubods.ad_put_flow_record_tencent_day a
  310. WHERE a.dt = '${day}'
  311. )
  312. GROUP BY rootsourceid
  313. ,ghid
  314. ) t5
  315. ON b.root_source_id = t5.root_source_id -- 关联企微外部合作的put_carrier_id
  316. LEFT JOIN (
  317. SELECT root_source_id
  318. ,put_carrier_id
  319. FROM ad_put_flow_tencent
  320. WHERE put_type_one = '企微'
  321. AND root_source_id REGEXP 'touliu_tencentwbqw_|dyyqw_'
  322. GROUP BY root_source_id
  323. ,put_carrier_id
  324. ) t6
  325. ON b.root_source_id = t6.root_source_id -- 关联服务号信息
  326. LEFT JOIN (
  327. SELECT rootsourceid
  328. ,s.gh_id
  329. ,s.channel
  330. FROM loghubods.long_articles_root_source_id a
  331. LEFT JOIN service_account s
  332. ON a.ghid = s.gh_id
  333. WHERE a.dt = MAX_PT('loghubods.long_articles_root_source_id')
  334. UNION
  335. SELECT root_source_id AS rootsourceid
  336. ,a.put_carrier_id
  337. ,d.channel
  338. FROM loghubods.ad_put_flow_record_tencent_day a
  339. LEFT JOIN (
  340. SELECT account.channel
  341. ,gzh.gh_id
  342. ,gzh.`name`
  343. ,(CASE gzh.type
  344. WHEN 0 THEN '公众号'
  345. ELSE '服务号'
  346. END) AS type
  347. FROM loghubods.content_platform_account account
  348. LEFT JOIN loghubods.content_platform_gzh_account gzh
  349. ON account.id = gzh.create_account_id
  350. ) d
  351. ON a.put_carrier_id = d.gh_id
  352. AND d.type = '服务号'
  353. WHERE a.dt = '${day}'
  354. AND root_source_id REGEXP 'fwhhzdyy_|fwhdyy_'
  355. ) s
  356. ON b.root_source_id = s.rootsourceid
  357. LEFT JOIN (
  358. SELECT root_source_id AS rootsourceid
  359. ,put_type_two AS push_type --,b.name AS accountname
  360. ,COALESCE(b.name,a.remark) AS accountname
  361. FROM loghubods.ad_put_flow_record_tencent_day a
  362. LEFT JOIN (
  363. SELECT user_id
  364. ,name
  365. FROM loghubods.reply_staff
  366. WHERE dt = MAX_PT('loghubods.reply_staff')
  367. AND is_delete = 0
  368. ) b
  369. ON a.put_carrier_id = b.user_id
  370. WHERE dt = '${day}'
  371. AND put_type_one = '企微'
  372. AND root_source_id REGEXP 'touliu_tencentqw_|WeCom_|qwmf_|qwsq_'
  373. AND (
  374. COALESCE(b.name,a.remark) IN ('热点视频推荐','情感专家-月亮姐姐')
  375. OR root_source_id REGEXP 'qwmf_|qwsq_'
  376. )
  377. GROUP BY root_source_id
  378. ,put_type_two
  379. ,COALESCE(b.name,a.remark)
  380. ) t7
  381. ON b.root_source_id = t7.rootsourceid -- 关联长文信息
  382. LEFT JOIN long_articles_info l
  383. ON b.root_source_id = l.rootsourceid
  384. LEFT JOIN (
  385. SELECT rootsourceid
  386. ,channel
  387. ,channel_name
  388. ,ghid
  389. ,gzh_name
  390. ,type
  391. FROM loghubods.rootsourceid_ghid_channel_mapping
  392. WHERE type = '公众号'
  393. GROUP BY rootsourceid
  394. ,channel
  395. ,channel_name
  396. ,ghid
  397. ,gzh_name
  398. ,type
  399. ) t8
  400. ON b.root_source_id = t8.rootsourceid
  401. LEFT JOIN (
  402. SELECT t1.root_source_id AS rootsourceid
  403. ,t1.put_type_two AS push_type
  404. ,t1.channel
  405. ,t2.layer_type
  406. FROM loghubods.ad_put_flow_record_tencent_day t1
  407. LEFT JOIN loghubods.content_platform_account t2
  408. ON t1.channel = t2.channel
  409. WHERE t1.dt = MAX_PT('loghubods.ad_put_flow_record_tencent_day')
  410. AND t1.put_type_one = '企微'
  411. AND t1.root_source_id REGEXP 'touliu_tencentwbqw_|dyyqw_|dyycd_'
  412. GROUP BY t1.root_source_id
  413. ,t1.put_type_two
  414. ,t1.channel
  415. ,t2.layer_type
  416. ) t9
  417. ON b.root_source_id = t9.rootsourceid
  418. ;