SQL选择不同的值,其中Status = MAX

问题描述 投票:1回答:3

我有一个表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  

我想要“select distinct”查询,它只向我显示具有该部分之一的最大状态的OrderIds。

结果:

4711 | 1  
4712 | 3  
4713 | 0

有人有解决方案吗?

我的第一次尝试是:

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

但是我当然得到了整体最大状态。我怎么能限制它?

sql select max distinct
3个回答
3
投票

您可以尝试直接使用MAXgroup by

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

1
投票

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

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

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


0
投票

它很容易实现结果

select OrderId,max(Status) from ErpInformations
group by OrderId 
© www.soinside.com 2019 - 2024. All rights reserved.