【问题标题】:drop duplicates on some columns and keep other columns values在某些列上删除重复项并保留其他列值
【发布时间】:2021-07-30 05:59:23
【问题描述】:

我在 Postgres 中有下表:

Id   Col1   Col2   Col3
1    A      1      x
2    A      0      y
3    A      0      z
4    B      0      x
5    B      1      y
6    C      0      z

作为选择查询的一部分,我希望能够根据 Col2 的最高值(每个 Col1 值永远不会有多个最高值)删除 Col1 中的重复项,并保留相应的 Col2、Col3 值。

期望的输出:

Id   Col1   Col2   Col3
1    A      1      x
5    B      1      y
6    C      0      z

【问题讨论】:

    标签: sql postgresql


    【解决方案1】:

    在 Postgres 中,你可以使用distinct on:

    select distinct on (col1) t.*
    from t
    order by col1, col2 desc;
    

    【讨论】:

      猜你喜欢
      • 2019-09-16
      • 1970-01-01
      • 2019-06-10
      • 2021-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多