数据准备,创建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 @NAME=NAME THEN @row_number + 1 ELSE 1 END AS id ,VALUE , NAME ,@name ,@NAME:=name FROM `aaa` A,( SELECT @NAME := 0,@row_number := 0) AS t ORDER BY NAME ,VALUE DESC ) AS G WHERE G.ID=1
版权声明:本文为love249原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。