2012-10-01 105 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`