ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

hiveSQL中where后边使用case_when

2021-11-08 12:01:29  阅读:206  来源: 互联网

标签:case hiveSQL dd TIMESTAMP when start UNIX online type


需求:查询出type 类型是1合2的所有用户信息,但是type=2的用户必须是 sex=1 
已知语句 select * from op_al_dd_retain_v where type in (1,2)
SELECT * FROM op_al_dd_retain_v
 WHERE type IN ( 1, 2 ) AND ( CASE WHEN
type = 1 AND sex != 1 THEN 0 ELSE 1 END ) = 1

以上查询结果会显示 type满足属于(1,2) 并且 当type=1时sex满足也等于1


以下是生产使用场景

USE c_v_o;

INSERT OVERWRITE TABLE od_me PARTITION (dt='${calc_date}')

SELECT
a_id,
c_id,
IF(LENGTH(start_t)>0,UNIX_TIMESTAMP(start_t)*1000,0) AS start_time,
COALESCE(first_online,0) AS first_online,
COALESCE(last_online,0) AS last_online,
number_o
FROM op_meta_least
WHERE c_t=1
AND CASE WHEN v_type IN (1,3) THEN 1 WHEN video_type!=5 AND episode_type NOT IN (3,4) THEN 1 ELSE 0 END=1
AND (
(UNIX_TIMESTAMP('${calc_date}','yyyy-MM-dd')-7700)*1000 < last_online
OR
(UNIX_TIMESTAMP('${calc_date}','yyyy-MM-dd')-700) < IF(LENGTH(start_time)>0,UNIX_TIMESTAMP(start_time),0)
)
AND (UNIX_TIMESTAMP('${calc_date}','yyyy-MM-dd')+800)*1000 > first_online

标签:case,hiveSQL,dd,TIMESTAMP,when,start,UNIX,online,type
来源: https://www.cnblogs.com/pengtaotao/p/15523544.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有