[英]Mysql select max variable value
I have a temporary table and the following query: 我有一个临时表和以下查询:
Select *, @rnkma:=IF(age>17 and age<22,@rnkma+1,@rnkma),
@rnkmb:=IF(age>21 and age<25,@rnkmb+1,@rnkmb),
@rnkmc:=IF(age>24 and age<30,@rnkmc+1,@rnkmc),
@rnkmd:=IF(age>29 and age<35,@rnkmd+1,@rnkmd),
@rnkme:=IF(age>34 ,@rnkme+1,@rnkme) from tmp_user where gender='M';
Select @rnkma, @rnkmb, @rnkmc, @rnkmd ;
The result is: 结果是:
@rnkma @rnkmb @rnkmc @rnkmd
5 8 3 4
I want to get max value of this result like: 我想得到这个结果的最大值,如:
@rnkmb
8
Any suggestions? 有什么建议么? Thanks. 谢谢。
Try using CASE and GREATEST(): 尝试使用CASE和GREATEST():
SELECT
CASE GREATEST(@rnkma, @rnkmb, @rnkmc, @rnkmd)
WHEN @rnkma THEN '@rnkma'
WHEN @rnkmb THEN '@rnkmb'
WHEN @rnkmc THEN '@rnkmc'
WHEN @rnkmd THEN '@rnkmd'
END name,
GREATEST(@rnkma, @rnkmb, @rnkmc, @rnkmd) value
(...)
@Pawel's answer is correct , i will add just one thing as a reference. @Pawel的回答是正确的,我只会添加一件事作为参考。 There's a difference between Max()
and Greatest()
Max()
和Greatest()
之间有区别
MAX()
returns maximum value of an expression. MAX()
返回表达式的最大值。 Ex: 例如:
select max(Age) from staff;
Greatest()
returns the greatest of the list of exprs. Greatest()
返回最大的exprs列表。 More than one column must be given. 必须提供多个列。
SELECT GREATEST(150,160,161) FROM XXX; will return 161
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.