+----+-------------------------+--------+------------+-------+--------+--------------+------------+---------+-----------+
| id | user_email              | cat_id | sub_cat_id | score | out_of | score_in_per | date       | groupId | groupType |
+----+-------------------------+--------+------------+-------+--------+--------------+------------+---------+-----------+
| 13 | inststudent@yopmail.com | 9      | 11         | 40    | 40     | 100          | 22-04-2017 | 34      | institute |
+----+-------------------------+--------+------------+-------+--------+--------------+------------+---------+-----------+
| 14 | inststudent@yopmail.com | 9      | 11         | 37    | 40     | 92.5         | 22-04-2017 | 34      | institute |
+----+-------------------------+--------+------------+-------+--------+--------------+------------+---------+-----------+
| 15 | inststudent@yopmail.com | 9      | 11         | 35    | 54     | 90.35        | 22-04-2017 | 34      | institute |
+----+-------------------------+--------+------------+-------+--------+--------------+------------+---------+-----------+
| 17 | inststudent@yopmail.com | 9      | 11         | 75    | 41     | 91.52        | 22-04-2017 | 34      | institute |
+----+-------------------------+--------+------------+-------+--------+--------------+------------+---------+-----------+
| 20 | inststudent@yopmail.com | 9      | 11         | 47    | 56     | 85           | 22-04-2017 | 34      | institute |
+----+-------------------------+--------+------------+-------+--------+--------------+------------+---------+-----------+
| 35 | inststudent@yopmail.com | 9      | 11         | 14    | 89     | 20.45        | 22-04-2017 | 34      | institute |
+----+-------------------------+--------+------------+-------+--------+--------------+------------+---------+-----------+
| 37 | inststudent@yopmail.com | 9      | 11         | 69    | 78     | 45.45        | 22-04-2017 | 34      | institute |
+----+-------------------------+--------+------------+-------+--------+--------------+------------+---------+-----------+

Из приведенной выше таблицы я хочу получить максимальное score_in_per значение в качестве подзапроса, но из-за десятичного числа оно не работает с помощью desc или max(score_in_per), поэтому как ni может получить максимальное score_in_per

это то, что я пытался, но максимальное значение не приходит ..

(SELECT MAX(score_in_per) 
FROM tbl_student_skill_score WHERE cat_id=9 
and sub_cat_id=11
ORDER BY score_in_per DESC)  as maxPortaScore 
0
Mr world wide 24 Апр 2017 в 08:40

2 ответа

Лучший ответ
SELECT  
max(cast(score_in_per as decimal(5,2)))
FROM tbl_student_skill_score WHERE cat_id=9 
and sub_cat_id=11

Попробуйте приведенный выше код. Надеюсь, это поможет вам.

1
Sagar Gangwal 24 Апр 2017 в 05:57

Здесь есть два подхода. Если вы хотите использовать функцию MAX(), тогда вам не нужно ORDER BY. Следовательно, должно работать следующее:

SELECT MAX(CAST(score_in_per AS DECIMAL(10,2))) AS maxPortaScore
FROM tbl_student_skill_score
WHERE cat_id = 9 AND sub_cat_id = 11

Другой подход состоит в том, чтобы использовать ORDER BY в столбце оценки, а затем ограничить набор результатов только первой записью, то есть максимальной оценкой:

SELECT CAST(score_in_per AS DECIMAL(10,2))
FROM tbl_student_skill_score
WHERE cat_id = 9 AND sub_cat_id = 11
ORDER BY CAST(score_in_per AS DECIMAL(10,2)) DESC
LIMIT 1

Я обновил вышеупомянутое, исходя из принятого ответа, который подразумевает, что score_in_per сохраняется как текст.

1
Tim Biegeleisen 24 Апр 2017 в 06:06