Mysql 如何在组_CONCAT中使用选择别名? 我平均4列,并给出别名分数。 现在,我正在尝试使用组_CONCAT中的分数别名来获得排名。 除了我将“按数学中的分数描述选择组分数顺序”添加为“排名”外,所有操作都有效。 我理解它不起作用,因为数学表中不存在分数。但是我需要做什么才能让它工作呢?

Mysql 如何在组_CONCAT中使用选择别名? 我平均4列,并给出别名分数。 现在,我正在尝试使用组_CONCAT中的分数别名来获得排名。 除了我将“按数学中的分数描述选择组分数顺序”添加为“排名”外,所有操作都有效。 我理解它不起作用,因为数学表中不存在分数。但是我需要做什么才能让它工作呢?,mysql,laravel,laravel-5,eloquent,sql-server-group-concat,Mysql,Laravel,Laravel 5,Eloquent,Sql Server Group Concat,这是我在laravel 5.5中提出的问题- $ranking=DB::选择“选择id,a.加法\精确度+a.减法\精确度+a.乘法\精确度+a.除法\精确度/4作为分数,从数学中选择组\按分数描述的分数顺序作为数学a的等级,其中级别=5” 我从上面的查询中得到500个服务器错误。 我期望低于输出 为您的查询尝试此选项。 我把它改成了checl,也改变了分数 SELECT id , (a.addition_accuracy + a.subtraction_accuracy + a.mu

这是我在laravel 5.5中提出的问题-

$ranking=DB::选择“选择id,a.加法\精确度+a.减法\精确度+a.乘法\精确度+a.除法\精确度/4作为分数,从数学中选择组\按分数描述的分数顺序作为数学a的等级,其中级别=5”

我从上面的查询中得到500个服务器错误。 我期望低于输出
为您的查询尝试此选项。 我把它改成了checl,也改变了分数

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

正如我所说,作为测试场的一些数据会很好

发布样本数据和预期结果。@forpas我已经添加了我希望看到的内容,您的MySql版本是什么?@forpas AWS Aurora MySql 5.6 global\u 10a但您还没有添加我们希望看到的内容。我刚刚添加了我希望看到的内容,编辑后的答案给出了完美的排名,但没有什么问题。当两个人的分数相同时,一个人的分数为1,第二个人的分数为2。我怎么做才能使它同时给出等级1。{id:38,分数:99.24250030517578,排名:1},{id:356,分数:99.24250030517578,排名:2}我不得不将分数顺序更改为分数顺序描述尝试此新更改的版本,它检查分数是否相同,它不会更改排名..它给出错误。我认为它无法在@score中输入分数。当我添加@score:=score时,它会向右断开
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