使用按位运算符将正数更改为1

时间:2015-08-19 04:10:58

标签: mysql sql hive bit-manipulation

我正在查询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

1 个答案:

答案 0 :(得分:0)

您可以使用IF(sum(count)>0,1,0)

更改{{1}}

IF需要三个参数:要检查的条件,如果为true则返回表达式,如果为false则返回表达式