SQL选择状态= MAX的唯一值

时间:2019-03-14 03:34:19

标签: sql select max distinct

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

但是我当然可以得到总体最高状态。如何限制它?

3 个答案:

答案 0 :(得分:3)

您可以尝试将MAXgroup by一起直接使用

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

答案 1 :(得分:1)

可以通过“按条款分组”和“最大功能”来实现。

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

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

答案 2 :(得分:0)

实现结果非常简单

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