【问题标题】:SQL select distinct value where Status = MAXSQL 选择不同的值,其中状态 = MAX
【发布时间】:2019-08-04 21:05:30
【问题描述】:

我有一个表 ErpInformations。

OrderId PartNo Status  
4711  |  1510 |  0  
4711  |  1511 |  0  
4711  |  1512 |  1  
4712  |  1513 |  3  
4712  |  1514 |  0  
4713  |  1515 |  0  
4713  |  1516 |  0  

我想要“选择不同的”查询,它只向我显示部件之一具有最大状态的 OrderId。

结果:

4711 | 1  
4712 | 3  
4713 | 0

有人有解决办法吗?

我的第一次尝试是:

select distinct(OrderId), 
       (select max(Status) from ErpInformations) 
  from ErpInformations;

当然,我得到了总体最高状态。怎么限制?

【问题讨论】:

    标签: sql select max distinct


    【解决方案1】:

    你可以尝试直接使用MAXgroup by

    select OrderId,max(Status) 
    from ErpInformations
    group by OrderId 
    

    【讨论】:

      【解决方案2】:

      可以通过Group by Clause和Max Function来实现。

      SELECT ORDERID, MAX(STATUS) FROM ERPINFORMATIONS GROUP BY ORDERID;
      

      SQL 脚本显示具有最大可用状态的不同 ORDERID。

      【讨论】:

        【解决方案3】:

        实现结果很简单

        select OrderId,max(Status) from ErpInformations
        group by OrderId 
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-12-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-10-11
          • 2011-12-20
          • 1970-01-01
          • 2018-02-19
          相关资源
          最近更新 更多