[英]SQL - Filter on two columns
我正在尝试在sql中每列上分别带有where子句的两列的计数。
可以说我的数据看起来像
person feature1 feature2
a 1 1
a 0 1
a 1 1
a 1 1
a 0 0
a 1 1
b 0 1
c 1 0
现在,我想按人对数据进行分组,分组后的数据应类似于
person feature1 feature2
a 2 1
b 0 1
c 1 0
我想计算每人每列的零数。 我如何通过sql做到这一点。
您可以使用条件聚合来执行此操作。 sum
条件返回1或0(取决于是或否)。
select person,sum(feature1=0),sum(feature2=0)
from tbl
group by person
在Hive中,您应该在总结之前将返回的布尔值转换为int
。
select person,sum(cast(feature1=0 as int)),sum(cast(feature2=0 as int))
from tbl
group by person
在这里,您可以使用case语句为每个人计算非零特征
从表1中按人员分组选择人员,计数(在feature1> 0时为1,否则为1的另一端)的情况下F1,计数(在feature1> 0时,则为1,否则为0的另一端情况)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.