我有一张桌子,每一行都有一个" group_id
"柱。我想得到一个"压缩"从该组输出的所有行作为单行(或任何类型的更简洁的结构 - 不重要它的外观)。此行仅供应用,不能保存在数据库中。由于表非常大,因此我自己计算会非常昂贵。我愿意预先计算这个值并缓存它。我不打算在那之后动态计算。
在"压缩"表示我不关心哪些值属于哪些键。我只是希望获得给定group_id
的所有选项。
例如,我的表的一个子集如下所示:
primary_key, group_id, column_a, column_b, column_c
key1, g1, a, b, c
key2, g1, a, b_1, c
key3, g1, a_1, b, c
key4, g2, a, b, c
key5, g2, a, b, c
key6, g3, x, y, z
key7, g3, x_1, y_1, z_1
key8, g3, x_2, y_2, z_3
一个很好的结果将是
g1, a & a_1, b & b_1, c
g2, a, b, c
g3, x & x_1 & x_2, y & y_1 & y_2, z & z_1 & z_2
它类似于所有列上的GROUP BY
,将所有可能的结果汇总到group_id
列的单行
答案 0 :(得分:0)
根据戈登评论,
只需要这样做:
SELECT group_id, group_concat(DISTINCT column_a), group_concat(distinct column_b), group_concat(distinct column_c)
FROM my_table
GROUP BY group_id