2017-06-20 37 views
1

行一列看起來像這樣如何有條件地聚集根據我的數據的另一個

[someId, someBool, someInt]

我正在尋找一種方式來聚集someInt(把它們放在一個專門array)。

我由someId場使用GROUP BY子句進行分組,然後我可以聚集所有someInt使用ARRAY_AGG但我只希望包括行,其中someBool=TRUE。如何以正確的方式來解決這個問題?

PS:這可能是有關要注意什麼,我得到了幾個布爾像someBool,想每次

回答

3

輸出到不同的陣列可以使用ARRAY_AGGIGNORE NULLS,如:

ARRAY_AGG(IF(someBool IS NOT TRUE, NULL, someId) IGNORE NULLS) 

這隻會彙總someBool爲真的ID。如果您想在條件中使用多個布爾列,則可以使用AND將它們放在一起,或者使用CASE WHEN ...或任何其他類型的條件來生成NULL以排除值。

+0

非常感謝! –

相關問題