小编And*_*oro的帖子

如何在 SQLite 中透视数据

我有一个表,其中包含文本数据,其中包含一堆不同语言的翻译。每个翻译都是针对特定标签的。

我需要生成一个数据透视表,以便快速获取缺少的内容。

记录的一个例子是

1, en, hello
1, fr, bonjour
1, es, hola
2, en, how are you
2, fr, 
3, es, come es stas
Run Code Online (Sandbox Code Playgroud)

尽管所有语言的翻译都应始终存在,但我不能 100% 确定情况确实如此。因此必须考虑缺失字段。

想要的结果是这样的

|ID|EN|FR|ES|
|1|hello|bonjour|hola|
|2|how are you| |come es stas|
Run Code Online (Sandbox Code Playgroud)

我面临的挑战是填充数据库时列顺序可能并不总是相同,因此理论上我应该有一个动态字段列表。

SQLite 中没有直接的 PIVOT 函数,因此我开始尝试使用 group_concat 获取逗号分隔的字符串。

SELECT DISTINCT language, group_concat(word, ',') OVER (PARTITION BY language) AS group_concat
FROM vocabulary;
Run Code Online (Sandbox Code Playgroud)

如果需要的话,我可以稍后在 Python 中运行结果;问题是任何缺失值都不会附加空项,从而将所有串联移动 n,从而使该解决方案无效。

我还尝试在选择谓词中使用过滤子句(尽管这意味着对列进行硬编码),但我未能成功。

关于如何实现这一目标有什么想法吗?

sqlite pivot

7
推荐指数
1
解决办法
8909
查看次数

标签 统计

pivot ×1

sqlite ×1