【问题标题】:How to select distinct rows from a table? [duplicate]如何从表中选择不同的行? [复制]
【发布时间】:2018-09-17 07:36:41
【问题描述】:

我有一个名为“versions”的表,其中包含 control_no、revision_id、revision_dt、version_no、version_dt、created_by、change_type、summary、new_owner 列。

每个 control_no 都有从 1 到特定数字的 revision_id。从这个表中,我想选择 VERSION_NO,CHANGE_TYPE,SUMMARY,CREATED_BY 用于具有 max(REVISION_ID) 的 CONTROL_NO。

如何做到这一点?

【问题讨论】:

  • 仅仅列出一些列名并不足以让我们了解您的问题。请edit您的问题并添加一些sample data 和基于该数据的预期输出。 Formatted textno screen shots。 (edit 您的问题 - 在 cmets 中邮政编码或其他信息)
  • 如果您想为每个 control_no 使用最大 revision_id,请清除您的问题???
  • 嗨。这是一个(很明显)常见问题解答。请始终在谷歌上搜索您的问题/问题/目标的许多清晰、简洁和特定的版本/措辞,带和不带您的特定字符串/名称,并阅读许多答案。将您发现的相关关键字添加到搜索中。如果您没有找到答案,请发布,使用一个变体搜索您的标题和关键字作为您的标签。请参阅向下投票箭头鼠标悬停文本。当您确实需要询问代码问题时,请阅读minimal reproducible example 并采取行动。

标签: sql oracle join


【解决方案1】:

使用下面的查询

select VERSION_NO,CHANGE_TYPE,SUMMARY,CREATED_BY from VERSIONS where REVISION_ID in (SELECT A.REVISION_LIST FROM (select max(REVISION_ID) AS REVISION_LIST, CONTROL_NO AS CONT_NO from VERSIONS GROUP BY CONTROL_NO)A);

【讨论】:

    【解决方案2】:

    这将起作用:

     select VERSION_NO,CHANGE_TYPE,SUMMARY,CREATED_BY,max(REVISION_ID),control_no 
      from versions group by control_no;
    

    【讨论】:

    • 我认为@aiswarya 想为每个revision_id 使用最大control_no
    • @WilliamRobertson 现在可以了吗??
    【解决方案3】:

    通过下面的代码你可以得到

    SELECT MAX(Version_id) AS Version_id, VERSION_NO,CHANGE_TYPE,SUMMARY,CREATED_By, CONTROL_NO 
    from table
    GROUP BY VERSION_NO,CHANGE_TYPE,SUMMARY,CREATED_By, CONTROL_NO 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-27
      • 2021-08-26
      • 2020-10-01
      • 2013-01-27
      • 1970-01-01
      • 1970-01-01
      • 2013-10-30
      相关资源
      最近更新 更多