簡體   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