【问题标题】:SQL get list without duplicatesSQL获取不重复的列表
【发布时间】:2020-03-20 23:34:18
【问题描述】:

我正在使用 Tableau 显示来自我认为使用 PostgreSQL 的 Amazon Redshift 服务器的数据。

我有一个看起来像这样的表:

ID    | Source | Target
proj1 | proj1  | proj2
proj1 | proj2  | proj1
proj1 | proj3  | proj2
proj2 | proj1  | proj2
proj2 | proj2  | proj1
proj2 | proj3  | proj2

我目前正在使用 listagg 将目标列组合到每个项目的列表中,但会遇到每个项目显示重复项和自身。

我的代码是:

Select ID,
       listagg(Target) As Tools
From Table
Group by ID

如何从列表中删除重复的 ID 和/或原始 ID?

【问题讨论】:

    标签: sql amazon-redshift tableau-api


    【解决方案1】:

    一种适用于任何数据库的方法是进行两级聚合,一是删除重复目标,二是按 ID 生成目标的 CSV 列表:

    SELECT
        ID,
        concat_func(Target) AS Tools    -- replace "concat_func" with whatever
    FROM                                -- be appropriate for your database
    (
        SELECT ID, Target
        FROM yourTable
        GROUP BY ID, Target
    ) t
    GROUP BY
        ID;
    

    【讨论】:

      猜你喜欢
      • 2017-09-19
      • 2021-02-02
      • 2015-01-01
      • 2021-10-31
      • 2019-10-12
      • 1970-01-01
      • 2013-09-15
      • 2021-10-18
      • 2020-02-17
      相关资源
      最近更新 更多