【发布时间】:2016-04-20 08:55:57
【问题描述】:
假设我有一张包含以下数据的表格:
您可以看到 a、b 和 c 列有很多冗余。我希望在保留 site_id 信息的同时删除这些冗余。如果我从查询中排除 site_id 列,我可以通过执行SELECT DISTINCT a, b, c from my_table 获得部分路径。
理想的情况是 SQL 查询可以将与 a/b/c 排列相关的站点 ID 转换为分隔列表,并输出如下内容:
是否可以使用 SQL 查询来做到这一点?还是我必须导出所有内容并使用不同的工具来删除冗余?
数据在 SQL Server 数据库中,不过我也很好奇如何用 postgres 做同样的事情,如果过程不同的话。
【问题讨论】:
-
对于 MSSQL,您有 COALESCE,对于 PostgreSQL,您有 string_agg,但取决于版本不同的方法。不要忘记搜索是你的朋友;)
-
我知道一个简单的方法是 SQL 但不确定 postgres。 sqlandme.com/2011/04/27/…
-
这是使用 SQL Server stackoverflow.com/a/1785923/215752 的一种方法
-
哇,我认为我试图做的事情有点奇怪(并且没有多少运气搜索)......显然这并不是那么不寻常。我只是在寻找错误的东西。谢谢大家!
标签: sql sql-server postgresql