2012-10-01 53 views
3

我有一個從一個到多個映射從IDsome_value的表。什麼查詢可以給我所有的some_value特定的IDSQL從幾行創建一個數組

我可以使用任何數組,字符串或SQL中有用的其他對象作爲list_of_values中的最終結果。您不需要使用我的逗號分隔格式。

我的SQL的特殊變體光盤是蜂巢,但語法和功能都非常相似,MySQL的:)

開始表:

ID    some_value 
----------- ------------ 
1    a 
1    b 
1    c 
2    x 
2    y 
2    z 
2    a 
3    g 
3    h 

成品表:

ID    list_of_values 
----------  ---------------- 
1    a, b, c 
2    x, y, z, a 
3    g, h 

回答

3
SELECT ID, COLLECT_SET(some_value) AS list_of_values 
    FROM YourTable 
    GROUP BY ID; 
+0

非常感謝!它甚至有一個Hive等價物:) –

0
SELECT 
    `id`, 
    GROUP_CONCAT(DISTINCT `some_value` SEPARATOR ', ') AS 'list_of_values' 
FROM `your_table` 
GROUP BY `id`