【问题标题】:How to select distinct rows per group如何为每组选择不同的行
【发布时间】:2017-06-22 22:21:16
【问题描述】:

我的表格如下:

 author_id | doc_id |      lang      
-----------+--------+----------------

        53 |  12642 | English
        53 |  12643 | English
        53 |     75 | French

        55 |  12605 | German
        55 |  12606 | German
        55 |  12596 | English

我需要编写一个查询,如下所示:

 author_id | doc_id |      lang      
-----------+--------+----------------

        53 |  12642 | English
        53 |     75 | French

        55 |  12605 | German
        55 |  12596 | English

【问题讨论】:

    标签: mysql database postgresql group-by


    【解决方案1】:

    如果我理解正确,对于作者和语言的每种组合,您需要最小的文档 ID。 您可以按您想要不同值的列进行分组,并将聚合 min 应用于另一个:

    SELECT   author_id, MIN(doc_id), lang
    FROM     docs
    GROUP BY author_id, lang
    

    【讨论】:

    • 非常感谢
    猜你喜欢
    • 1970-01-01
    • 2012-10-20
    • 2018-12-09
    • 1970-01-01
    • 1970-01-01
    • 2021-02-24
    • 1970-01-01
    • 1970-01-01
    • 2012-07-28
    相关资源
    最近更新 更多