У меня есть два стола студента и экзамен выглядетьMysql: Выберите максимальное количество из разных ид
student(studentid,lastname,firstname,class)
exam(studentid,course,mark,result)
Мне нужно найти лучшие студенты имеют отметку с 90, 100 в каждом классе.
это то, что мне нужно
class studentid best
K11 K1101 3
K12 K1203 2
K13 K1305 2
это мой первый код
Select st.class, st.studentid, count(st.mark) as best
From exam e inner join student st on e.studentid = st.studentid
Where e.mark = 90 or e.mark = 100
Group by e.studentid
возвращение
class studentid best
K11 K1101 3
K12 K1201 1
K12 K1203 2
K13 K1305 2
поэтому я стараюсь другой код
Select st.class, st.studentid, count(st.mark) as best
From exam e inner join student st on e.studentid = st.studentid
Where e.mark = 90 or e.mark = 100
Group by st.class
Having count(e.mark) =
(Select max(count)
From (Select count(ex.mark) count
From exam ex
Where ex.mark = 90 or ex.mark = 100
Group by ex.studentid) a)
и до сих пор получить неправильный ответ
class studentid best
K11 K1101 3
K12 K1201 3
UPDATE DATA
Sorry о неясном вопросе. Мне нужно найти учеников в каждом классе есть много курсов с точным счетом 90 или 100. Это мои данные
экзамен
studentid course mark result
K1101 DB 100 Pass
K1101 CD 90 Pass
K1101 DIP 95 Pass
K1101 OT 100 Pass
K1102 DB 97 Pass
K1102 CD 65 Pass
K1102 DIP 70 Pass
K1102 OT 44 Fail
K1201 DB 85 Pass
K1201 CD 90 Pass
K1201 DIP 76 Pass
K1201 OT 65 Pass
K1202 DB 69 Pass
K1202 CD 32 Fail
K1202 DIP 57 Pass
K1202 OT 96 Pass
K1203 DB 90 Pass
K1203 CD 87 Pass
K1203 DIP 90 Pass
K1203 OT 91 Pass
K1301 DB 75 Pass
K1301 CD 79 Pass
K1301 DIP 78 Pass
K1301 OT 63 Pass
K1305 DB 90 Pass
K1305 CD 93 Pass
K1305 DIP 100 Pass
K1305 OT 80 Pass
В этом случае в классе К11, студент K1101 есть 2 курса с 100 , один с 90, так что я считаю 3
Показать данные источника. –
Просто любопытно, не должно быть 'e.mark МЕЖДУ 90 И 100'. Было бы бессмысленно присуждать студенту, у которого должен быть точный счет (90, 100), но не между ними. И может ли студент с идентификатором 'K1201' быть на самом деле иметь один счет 90 или 100? – invisal
Вы можете показать некоторые данные образца? –