2022年7月13日 星期三

[MySQL] 同一筆資料,取得其中兩個欄位的最大(最小)值

使用GREATEST和LEAST跨columns來取得最大值或最小值


手中有多位用戶資料,每個用戶在各種狀態上都有不同的風險等級,我要找出其中最大的風險等級,但不需知道最大的是哪一項。

userrisk1risk2risk3
John213
Marry141

可以使用使用GREATEST來取得我們要的答案
GREATEST(column1, column2, column3,...)
組成SQL如下
select
	user,
	GREATEST(risk1, risk2, risk3)
from
	thedata
where
	1=1

userGREATEST(risk1, risk2, risk3)
John3
Marry4

如果要取得最小值也有LEAST方法能用
LEAST(column1, column2, column3,...)
要注意的是,雖沒有強制要求一定要數字欄位才可使用,但如果欄位是varchar型態會出現2>11的狀況,需先轉型後再使用。

沒有留言:

張貼留言