Как увеличить значение в MySQL? я хочу найти оценку ученика, которая должна быть не более 1 и т. д. - PullRequest
0 голосов
/ 06 ноября 2018

введите описание изображения здесь

Я хочу увеличивать значение после каждого цикла, после каждой строки @a значение должно быть увеличено

SET @a=1;
SELECT  @a,std_id,SUM(`read_mark`+`write_mark`+`homework`+`classwork`) AS tot FROM tbl_exam
where `class_detail_id`=26 AND YEAR(`date`)=1397 GROUP BY `std_id` ORDER BY
SUM(`read_mark`+`write_mark`+`homework`+`classwork`) DESC;
SET @a=@a+1;

1 Ответ

0 голосов
/ 06 ноября 2018

Вы можете попробовать ниже

SET @a = 0;

select (@a:=@a + 1) AS num,* from
(SELECT 
    std_id,SUM(`read_mark`+`write_mark`+`homework`+`classwork`) AS tot 
    FROM tbl_exam
    where `class_detail_id`=26 AND YEAR(`date`)=1397 GROUP BY `std_id` 
   ORDER BY tot  DESC
)X

Для MYSql версии 8+ вы можете использовать оконную функцию row_number ()

select row_number() over(partition by std_id order by tot desc) as num,*
from
(SELECT 
        std_id,SUM(`read_mark`+`write_mark`+`homework`+`classwork`) AS tot 
        FROM tbl_exam
        where `class_detail_id`=26 AND YEAR(`date`)=1397 GROUP BY `std_id` 
       ORDER BY tot  DESC
 )X
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...