繁体   English   中英

SQL-筛选两列

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM