来自两列的 SQLITE group_concat 配对值

Posted

技术标签:

【中文标题】来自两列的 SQLITE group_concat 配对值【英文标题】:SQLITE group_concat pairing values from two columns 【发布时间】:2018-09-23 10:52:42 【问题描述】:

我有一张这样的桌子:

id      key      value
244574  16       999
244574  18       999
244574  54       174
214808  16       662
214808  17       808
214808  33       1
214808  60       2
214809  16       902 
214809  17       1103
214809  33       1
214809  60       2
218965  19       808
218965  21       662
218965  33       1
218965  60       8
218966  19       1103
218966  21       902
218966  33       1
218966  60       8

小提琴:click here

现在我尝试获取一个列表,其中有一个包含键和值对的列,应该如下所示:

id      key_value_pairs
214808  [16,662;17,808;33,1;60,2]
214809  [16,902;17,1103;33,1;60,2]
218965  [19,808;21,662;33,1;60,8]
218966  [19,1103;21,902;33,1;60,8]
244574  [16,999;18,999;54,174]

我的查询:

select 
id,
'[' || group_concat(key, ',') ||
';' || group_concat(value, ',') || ']' as key_value_pairs
from items_attributes
GROUP BY id

...这导致您可以在我上面链接的小提琴中看到。

有人碰巧有解决这个问题的办法吗?

提前致谢!

最好的问候, 安德烈亚斯

【问题讨论】:

【参考方案1】:

得到:-

我用过:-

select 
    id,
    '[' || group_concat(key||","||value, ';')||']' as key_value_pairs
from items_attributes
GROUP BY id

【讨论】:

像魅力一样工作。非常感谢! =)

以上是关于来自两列的 SQLITE group_concat 配对值的主要内容,如果未能解决你的问题,请参考以下文章

在 SQLite 中组合两列的巧妙方法?

将一些数据从 sqlite 表复制到具有不同两列的同一个表中

来自两列的熊猫数据框类别代码

来自两列的熊猫数据框类别代码

使用来自两列的数据进行计数[重复]

比较来自两个不同表的两列的逗号分隔值