Ответ 1
Попробуйте это на
SELECT @s:[email protected]+1 serial_number,student_id,student_name,student_avg
FROM students,
(SELECT @s:= 0) AS s
WHERE
student_avg > 4;
У меня есть таблица студентов со следующими полями:
student(student_id, student_name, student_avg)
Мне нужно написать запрос в MySQL, который отобразит результат как:
Серийный номер. = > результат должен также иметь новый столбец с серийным номером как 1,2,3,...,n
, как автоматический приращение для каждой строки результата.
student_id
student_name
student_avg > 4
Я не хочу каким-либо образом изменять таблицу. Все, что мне нужно сделать, это написать запрос, который даст мне приведенный выше результат. Надеюсь, я поняла.
Пример данных:
student_id student_name student_avg
1 abc 2.5
2 xyz 4.1
3 def 4.2
Пример вывода после запроса:
serial_no student_id student_name student_avg
1 2 xyz 4.1
2 3 def 4.2
Попробуйте это на
SELECT @s:[email protected]+1 serial_number,student_id,student_name,student_avg
FROM students,
(SELECT @s:= 0) AS s
WHERE
student_avg > 4;
SET @serial=0;
SELECT @serial := @serial+1 AS `serial_number`, `column_name` FROM `table_name`;
В вашем конкретном случае:
SET @serial=0;
SELECT
@serial := @serial+1 AS `serial_number`,
`student_id`,
`student_name`,
`student_avg`
FROM
`students`
WHERE
`student_avg` > 4;