mysql mybatis 分组取出表中使用次数最多的前两条记录

INSERT INTO t_carrier_route (id,carrier_user_id,`START_PROVINCE`,start_city,`START_AREA`,start_address,`END_PROVINCE`,`END_CITY`,`END_AREA`,end_address,create_date,create_by,del_flag)
        SELECT REPLACE(UUID(),"-",""),blood.carrier_user_id,blood.`START_PROVINCE`,blood.start_city,blood.`START_AREA`,blood.start_address,blood.`END_PROVINCE`,blood.`END_CITY`,blood.`END_AREA`,blood.`end_address`,NOW(),1,0
        FROM
        (SELECT *
        FROM (SELECT  tb.id,tb.dd,tb.carrier_user_id,tb.start_city,tb.`START_PROVINCE`,tb.`START_AREA`,tb.start_address,tb.`END_PROVINCE`,tb.`END_CITY`,tb.`END_AREA`,tb.end_address,
        @num := IF(@type=tb.carrier_user_id, @num + 1, 1) AS row_number,
        @type := tb.carrier_user_id AS other_type
        FROM (SELECT *,(select @num := 0),(select @type := '') FROM (SELECT b.id,COUNT(*) AS dd,b.carrier_user_id,b.start_city,b.`START_PROVINCE`,b.`START_AREA`,b.start_address,b.`END_PROVINCE`,b.`END_CITY`,b.`END_AREA`,b.end_address FROM t_trans_order  b GROUP BY b.carrier_user_id,b.start_city,b.`START_PROVINCE`,b.`START_AREA`,b.`END_PROVINCE`,b.`END_CITY`,b.`END_AREA`) cc ORDER BY cc.carrier_user_id,cc.dd DESC)  tb
        ) ace
        HAVING ace.row_number <= 2) blood;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值