[英]How do I use select alias inside GROUP_CONCAT?
score
。score
別名來獲得rank
。(SELECT GROUP_CONCAT( score ORDER BY score DESC) FROM math )) AS rank
。math
表中不存在score
。 但是我需要做什么才能讓它發揮作用?這是我在 laravel 5.5 中的查詢 -
$ranking = DB::select('SELECT id, (a.addition_accuracy + a.subtraction_accuracy + a.multiplication_accuracy + a.division_accuracy)/4 as score, (SELECT GROUP_CONCAT( score ORDER BY score DESC) FROM math )) AS rank FROM math a where level = 5');
{
"id": 38,
"score": 99.24250030517578,
"rank": 1
},
{
"id": 51,
"score": 84.88500213623047,
"rank": 2
},
{
"id": 204,
"score": 69.27500057220459,
"rank": 3
}
]```
試試這個為您的查詢。 我把它改成檢查分數
SELECT
id
, (a.addition_accuracy + a.subtraction_accuracy + a.multiplication_accuracy + a.division_accuracy)/4 as score
,if(@score = score,@rank:= @rank,@rank:= @rank+1) as rank
, @score := score
FROM math a,(SELECT @rank :=0) b ,(SELECT @score :=0) c
where level = 5
ORDER BY score DESC
LIMIT 3
正如我所說,一些數據作為試驗場會很好
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.