MYSQL实现排序分组取第一条sql

  • 数据准备,创建aaa表,实现ABC取最大值 A 5 ,B 6,C 7

  • 实现sql 方式1  使用limit关键字使排序生效

SELECT * FROM (
 SELECT * FROM `aaa` A 
 ORDER BY name, VALUE DESC 
 LIMIT 1000000
) AS G GROUP BY NAME 
;
  • 实现sql 方式2  使用distinct关键字使排序生效

  • SELECT * FROM(
     SELECT DISTINCT * FROM `aaa` A
    ORDER BY NAME ,VALUE DESC 
    ) AS G GROUP BY NAME 
    ;
  • 实现sql 方式3  使用变量方式(推荐)

  • select * from (
    	 select
    	 @row_number := case when  @v_name= name then  @row_number + 1  else  1 end  as  id
    	,name
    	,value
    	,@v_name:=name
    	from aaa A,( select  @v_name := '',@row_number)  as  t
    	order by name ,value desc 
    ) as g
    where g.id=1

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值