我正在查询hive
表。
像这样的样本数据
userid count date_time
1 123 2015
1 12 2015
2 12 2015
2 0 2015
期待结果:
1 2 2015
2 1 2015
我想要的是什么:If count> 0, the count is 1, otherwise count is 0
(PS:计数是非负的)。
我的查询:
select uid, sum(count), date_time from count_table group by uid, date_time
^^
select uid, sum(count&1), date_time from count_table group by uid, date_time
我搜索bit-manipulation
,但找不到解决方案。
如何在bitwise operation
上执行count
,通过更新我的sql将正数设为1。
任何想法如何解决这个问题,谢谢。
更新
我正在使用HIVE
,因此操作在hive-sql
内。
HIVE支持Arithmetic Operators
,例如+ - * / % | & ~ ^
。 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF
答案 0 :(得分:0)
您可以使用IF(sum(count)>0,1,0)
IF需要三个参数:要检查的条件,如果为true则返回表达式,如果为false则返回表达式