COUNTDISTINCTIF 函式

針對每個群組中符合特定條件的資料列計算不同的非空值數。

注意:在轉換中加入這個函式後,系統會將其套用到目前的樣本。如果您變更樣本或執行工作,此函式所計算出的值也會一併更新。在後續的方案步驟中,變更資料列數量的轉換並不會影響這個步驟計算出的值。

如要執行簡單的非空值數計算,而不設下任何條件,請使用 COUNTDISTINCT 函式。請參閱 COUNTDISTINCT 函式

基本用法

pivot value: COUNTDISTINCTIF(entries, entryValidation == 'Ok') group:City limit:1

輸出:針對 City 值,當 entryValidation 值為 'Ok' 時,系統會產生由兩個資料欄組成的資料表,其中含有 City 的不重複值和來自 entries 資料欄的非空值數。limit 參數會定義輸出資料欄數量上限。

語法

pivot value:COUNTDISTINCTIF(col_ref, test_expression) [group:group_col_ref] [limit:limit_count]

引數是否必要?資料類型說明
col_ref字串參照您要求取值的資料欄。
test_expression字串用來求取值的運算式,必須解析為 truefalse

如要進一步瞭解語法標準,請參閱語言文件語法附註

如要進一步瞭解 grouplimit 參數,請參閱 Pivot 轉換

col_ref

您在計算時要使用的來源值資料欄名稱,資料欄必須為數字類型 (整數或小數)。

使用須知:

是否必要?資料類型範例值
對應至資料欄名稱的字串myValues

test_expression

這個參數含有用來求取值的運算式。這個運算式必須解析為布林值 (truefalse)。

使用須知:

是否必要?資料類型範例值
得出的結果值為 truefalse 的字串運算式(LastName == 'Mouse' && FirstName == 'Mickey')

範例

範例 - 加總選民登記資料

本範例說明何使用下列條件計算函式來分析投票資料:

  • SUMIF:符合指定條件的一組值的加總,加總結果按群組分組。請參閱 SUMIF 函式一文。
  • COUNTDISTINCTIF:符合指定條件的一組值的加總,加總結果按群組分組。請參閱 COUNTDISTINCTIF 函式一文。

來源:

以下範例為 4 個地區 8 個城市 16 個選區中,選民在投票所因登記無效而無法投票的投票資料。先前發生過此問題的選區已加入觀察清單 (precinctWatchList)。

totalReginvalidRegprecinctWatchListprecinctIdcityIdcountyId
73124y111
74329y211
8740 321
9830 421
62229 532
6930 632
77537y742
102549y842
78713 953
3420 1053
34239y1163
38728y1263
58259 1374
2440 1474
9406y1584
9014y1684

轉換:

首先,您想要依城市來加總無效登記的數量 (invalidReg):

derive type:single value:SUMIF(invalidReg, precinctWatchList == "y") group:cityId as:'invalidRegbyCityId'

invalidRegbyCityId 資料欄含有全市的無效登記數量。現在您打算在地區的層級,識別出在觀察清單上屬於全市登記問題的選區數量。這個步驟會執行匯總作業:

pivot value:COUNTDISTINCTIF(precinctId, invalidRegbyCityId > 60) group:countyId limit:1

結果:

countyIdcountdistinctif_precinctId
10
22
32
40

負責 2 郡與 3 郡投票事項的官員應調查他們選區發生的登記問題。

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Google Cloud Dataprep 說明文件
需要協助嗎?請前往我們的支援網頁