hive:函数:条件函数:if函数

语法: if(boolean testCondition, T valueTrue, T valueFalseOrNull)

说明: 当条件testCondition为TRUE时,返回valueTrue;否则返回valueFalseOrNull

实例1:

mysql

select source,if(source='猎聘',1,2) as flag from t_cal_dowell_resume

hive:

select a,b,c,if(b='上帝',1,2) as bb from tmp.csv_t1 

实例2:

select if(1 is not null,'ttt',111) from ods.ods_cdd_r_t_callinof_info;

### 关于Hive窗口函数的使用方法 #### 排序类窗口函数的重要性 排序类窗口函数Hive中的应用非常广泛,在数据处理过程中尤其重要,尤其是在去除重复记录方面发挥了重要作用[^1]。 #### `OVER()`作为核心组件 实际上,`over()`是唯一被定义为真正意义上的窗口函数的部分;不过,此函数经常与其他各种函数联合运用以达到更佳的效果。其基本结构如下所示: ```sql 分析函数 OVER (PARTITION BY 列名 ORDER BY 列名 ROWS BETWEEN 开始位置 AND 结束位置) ``` 这里包含了几个关键要素:首先是`PARTITION BY`用于指定如何划分数据集以便独立地应用于各个分区内;其次是`ORDER BY`用来决定行之间的顺序关系;最后则是可选参数`ROWS BETWEEN ... AND ...`来限定具体操作的数据范围[^2]。 #### 常见的内置窗口函数及其作用 为了满足不同类型的统计需求,Hive提供了多种内建窗口函数供用户选择,其中包括但不限于: - **COUNT()**: 计算总数; - **SUM()**: 求和运算; - **AVG()**: 平均值计算; - **RANK(), DENSE_RANK(), ROW_NUMBER()**: 各种形式下的排名功能; - **FIRST_VALUE(), LAST_VALUE()**: 获取第一个/最后一个值; - **CUME_DIST()**: 累积分布比例等。 这些工具能够帮助开发者针对特定业务逻辑执行高效的聚合查询[^3]。 #### 实际案例展示 假设有一个销售表`sold_items`,其中含有字段如`customer_id`, `item_name`, 及购买时间戳`purchase_time`。现在想要获取每位顾客最近一次购物的信息,则可以利用`ROW_NUMBER()`配合`PARTITION BY`实现这一目标: ```sql SELECT * FROM ( SELECT *, ROW_NUMBER() OVER(PARTITION BY customer_id ORDER BY purchase_time DESC) AS rn FROM sold_items ) t WHERE rn = 1; ``` 上述SQL语句通过创建一个临时列`rn`标记每组(由相同`customer_id`组成的一组)内的相对位次,并最终筛选出那些具有最高优先级——即最新日期对应的条目[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值