在 Postgresql 中选择位掩码
我有一个包含“一”和“二”列的表:
a | x
a | y
a | z
b | x
b | z
c | y
我想编写一个查询来补充缺少的嵌套值
b | null | y
c | null | x
c | null | z
然后我将使用 array_agg(two) group by one 选择它,这样
a {1 1 1}
b {1 0 1}
c {0 1 0}
最终使用 COPY 查询将其导出到 CSV 文件中
第一步我应该编写什么查询?
I have a table with columns "one" and "two":
a | x
a | y
a | z
b | x
b | z
c | y
I want to write a query to complement it with missing nested values
b | null | y
c | null | x
c | null | z
Then I will select it with array_agg(two) group by one
, such that
a {1 1 1}
b {1 0 1}
c {0 1 0}
And eventually export it in a CSV file with COPY query
What query should I write for the first step?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用 CROSS JOIN 构建所有可能的元素对,然后使用 LEFT JOIN 检查每对元素是否存在:
然后您可以添加
GROUP BY T1.one
和ARRAY_AGG (...)
到此查询。You can use a CROSS JOIN to build all the possible pairs of elements then a LEFT JOIN to check if each pair of elements exists:
You can then add a
GROUP BY T1.one
and anARRAY_AGG(...)
to this query.