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