【问题标题】:presto: how to combine 2 columns' values into one columnpresto:如何将 2 列的值合并为一列
【发布时间】:2021-06-01 12:27:07
【问题描述】:

我是 SQL 的初学者。我有一个如下表:

Id start_place  end_place
1   a            b
2   b            c 
3   d            e
4   a            e

想要的输出:

 place
 a
 b
 c
 d
 e

我想从 start_place 和 end_place 中找到不同的值和不同的值,并将它们组合成一列(如果有重复项,例如,b 在开始和结束位置,只显示一次)。

【问题讨论】:

    标签: mysql sql presto


    【解决方案1】:

    你可以使用union:

    select start_place
    from t
    union   -- on purpose to remove duplicates
    select end_place
    from t;
    

    请注意,union 会删除重复项。在大多数情况下,您需要union all,这样您就不会产生删除重复项的开销。不过,在这种情况下,您真正​​想要的是重复删除。

    【讨论】:

    • UNION [DISTINCT] 是否总是这样(我的意思是甚至在 5.5 之前)?
    • “UNION”是每个 SQL 规范的“UNION DISTINCT”。如果在 Presto 或 Trino 中执行查询,UNION 操作发生在集群中,而不是在 MySQL 中,因此 MySQL 版本无关紧要。
    猜你喜欢
    • 1970-01-01
    • 2011-10-23
    • 1970-01-01
    • 1970-01-01
    • 2022-07-21
    • 1970-01-01
    • 1970-01-01
    • 2020-04-22
    • 1970-01-01
    相关资源
    最近更新 更多