MySQL中如何查询分组内具有最高ProductionStatusNo值的行
按CartonId分组获取ProductionStatusNo最高行的SQL查询
以下SQL用于从detail表中查询每个CartonId分组内ProductionStatusNo值最高的行数据:
SELECT CorrelationId, EINNo AS EIN, ClientNo AS `Client-No`, PackageReference2 AS PackageRef2, COALESCE(UPSTracking, USPSTracking) AS TrackingNo, CartonID AS CartonId, ZipFileName AS `ZIPFILE name`, ProductionFacility AS Facility, MAX(ProductionStatusNo) AS Status, MAX(StatusDateTime) AS StatusDateUTC FROM detail GROUP BY CartonId ;
语句说明
- 按
CartonId对表中数据分组,每组取ProductionStatusNo的最大值作为该纸箱的最新状态(Status),同时取对应的最新状态时间(StatusDateUTC) - 用
COALESCE函数优先取UPSTracking的值,若为空则取USPSTracking,合并为TrackingNo字段 - 业务规则:当分组内最高的
ProductionStatusNo达到9或10时,UPSTracking或USPSTracking必有一个有值,因此TrackingNo不为空;若纸箱的最高ProductionStatusNo未达到9或10,TrackingNo则为null
内容的提问来源于stack exchange,提问作者rahularyansharma
相关产品推荐
相关产品推荐

