sql同一张表分组,取到每组里最新的一条数据

rank是给数据打标,1说明这是最新的数组

select
        result.start_city_id AS "startCityId",
        result.start_city_name AS "startCityName",
        result.start_district_id AS "startDistrictId",
        result.start_district_name AS "startDistrictName",
        result.start_address_detail AS "startAddressDetail",
        result.unload_city_id AS "unloadCityId",
        result.unload_city_name AS "unloadCityName",
        result.unload_district_id AS "unloadDistrictId",
        result.unload_district_name AS "unloadDistrictName",
        result.unload_address_detail AS "unloadAddressDetail",
        result.category_name AS "categoryName",
        result.weight AS "weight",
        result.upload_time AS "uploadTime",
        result.arrive_time AS "arriveTime",
        result.remarks AS "remarks",
        result.requirement AS "requirement",
        result.created_time AS "createdTime"
    from (
        SELECT
            a.*,
            count(1) AS "rank"
        FROM t_entrust_goods_source a
        LEFT JOIN t_entrust_goods_source b
        ON a.start_city_id = b.start_city_id AND a.start_district_id = b.start_district_id
        AND a.unload_city_id = b.unload_city_id AND a.unload_district_id = b.unload_district_id
        AND a.category_name = b.category_name AND a.weight = b.weight
        AND a.source_from = b.source_from AND a.cust_crm_user_id = b.cust_crm_user_id
        AND a.created_time <= b.created_time AND b.valid = 1
        WHERE
        a.valid = 1
        and a.source_from = #{sourceFrom}
        and a.cust_crm_user_id = #{custCrmUserId}
        GROUP BY a.start_city_id, a.start_district_id, a.unload_city_id, a.unload_district_id, a.category_name, a.weight, a.created_time
    ) result
    where
        result.rank = 1
    ORDER BY result.created_time DESC

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值