2014-12-22 62 views
-1

我有一個配置列結構的配置單元表。我需要運行一個查詢來將該列的一些行收集到數組中。需要將結構類型分組到數組中

最終的結果應該是結構<的陣列....>

我已經試過「collect_set」,但它給我一個錯誤,它不能被用於複雜類型。我需要一些類似mySSQL的「group_concat」。

你有什麼想法,我怎麼能實現這個(最好不使用任何udf/udaf)?

謝謝。

更新: 我有一個使用UDAF的臨時解決方案。但我想知道內置函數是否可行。

+0

請包含您的代碼,以便我們更輕鬆地提供幫助。 – ArtOfCode

回答

0

這是行不通的?

SELECT collect_set(column_containing_struct.struct_field_name) FROM your_table; 
-- Or some variant of this 

這是假設的幾件事情:

  • 你的表包含一個名爲 「column_containing_struct」 列包含一個結構。
  • 該列中的結構包含名爲「struct_field_name」的字段。
  • 你正在做的是產生一個在結構體的字段中出現的所有唯一值的數組。

如果您不想重複數據刪除並且想要所有曾經出現過的內容,請改用collect_list

+0

不幸的是,它不適合我。最後我需要:數組>。你的查詢提供了什麼數組<原始類型> – maze2002

+0

@ maze2002啊,我現在更清楚地理解你的目標。我很高興看到你至少有一個臨時解決方案。 – rchang

相關問題