【问题标题】:SQL - Grouping duplicates and unique id issueSQL - 分组重复和唯一 ID 问题
【发布时间】:2012-08-08 20:26:58
【问题描述】:

希望有人能指出我正确的方向。我有点抓狂。

这是一些示例数据:

ID    SUBID   COL1      COL2      COL2      COL3
1     10001   Test 1    Test 2    Test 3    Test 4
2     10002   Test 1    Test 2    Test 3    Test 4
3     10003   Test 1    Test 2    Test 3    Test 4
4     10004   Test 1    Test 2    Test 3    Test 4
5     10005   Test 5    Test 6    Test 7    Test 8

我需要这样的结果:

ID    SUBID   COL1      COL2      COL2      COL3
4     10004   Test 1    Test 2    Test 3    Test 4
5     10005   Test 5    Test 6    Test 7    Test 8

我需要根据 COL1、COL2、COL3 和 COL4 对所有重复项进行分组,这很容易,但我需要从 ID 和 SUBID 列中的分组中输出一个数字,这与分组中的哪一行无关from,它只需要一个值。

性能也是执行此操作的关键,因为我要查询数百万行。

希望以上内容有意义,谢谢。

【问题讨论】:

    标签: sql duplicates grouping


    【解决方案1】:

    您可以使用最小值或最大值来选择一个。它们不会来自同一行,但它“只是一个值”。

    select min(id), min(subid), col1, col2, col3, col4
    from tab
    group by col1, col2, col3, col4 
    

    【讨论】:

    • 我确定我之前尝试过,但没有成功!!现在可以使用了,非常感谢 Stefan。
    【解决方案2】:
    select id, subid, COL1, COL2, COL3, COL4
    from your_table
    where id in (
                 select min(id)
                 from your_table
                 group by COL1, COL2, COL3, COL4
                )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-03
      • 1970-01-01
      • 2018-10-07
      • 1970-01-01
      • 2011-11-09
      • 2017-01-31
      • 2014-04-14
      • 1970-01-01
      相关资源
      最近更新 更多