SELECT id,name,class,sex,student_id,mark FROM `student6` a
LEFT JOIN (SELECT student_id, AVG(mark) as mark
FROM student_mark GROUP BY student_id ) b on a.id= b.student_id
| id | name | class | sex | student _id | mark |
|---|---|---|---|---|---|
| 1 | John Deo | Four | female | 1 | 83.0000 |
| 2 | Max Ruin | Three | male | 2 | 77.1667 |
| 3 | Arnold | Three | male | 3 | 67.6667 |
| 4 | Krish Star | Four | female | 4 | 80.1667 |
| 5 | John Mike | Four | female | 5 | 85.5000 |
More on Average ( AVG ) Query.
SELECT id,name,class,sex,student_id,mark FROM `student6` a
LEFT JOIN (SELECT student_id, MAX(mark) as mark
FROM student_mark GROUP BY student_id ) b on a.id= b.student_id
| id | name | class | sex | student _id | mark |
|---|---|---|---|---|---|
| 1 | John Deo | Four | female | 1 | 93 |
| 2 | Max Ruin | Three | male | 2 | 87 |
| 3 | Arnold | Three | male | 3 | 80 |
| 4 | Krish Star | Four | female | 4 | 87 |
| 5 | John Mike | Four | female | 5 | 95 |
SELECT id,name,class,sex,student_id,mark, month FROM `student6` a
LEFT JOIN (SELECT student_id, MAX(mark) as mark,
month(exam_dt) as month
FROM student_mark GROUP BY month(exam_dt),student_id) b
on a.id= b.student_id
| id | name | class | sex | student _id | mark | month |
|---|---|---|---|---|---|---|
| 1 | John Deo | Four | female | 1 | 84 | 4 |
| 1 | John Deo | Four | female | 1 | 93 | 5 |
| 1 | John Deo | Four | female | 1 | 80 | 6 |
| 2 | Max Ruin | Three | male | 2 | 80 | 4 |
| 2 | Max Ruin | Three | male | 2 | 86 | 5 |
| 2 | Max Ruin | Three | male | 2 | 87 | 6 |
| 3 | Arnold | Three | male | 3 | 72 | 4 |
| 3 | Arnold | Three | male | 3 | 80 | 5 |
| 3 | Arnold | Three | male | 3 | 61 | 6 |
| 4 | Krish Star | Four | female | 4 | 84 | 4 |
| 4 | Krish Star | Four | female | 4 | 85 | 5 |
| 4 | Krish Star | Four | female | 4 | 87 | 6 |
| 5 | John Mike | Four | female | 5 | 95 | 4 |
| 5 | John Mike | Four | female | 5 | 89 | 5 |
| 5 | John Mike | Four | female | 5 | 95 | 6 |
More on Maximum ( MAX ) Query.
SELECT id,name,class,sex,student_id,mark, month FROM `student6` a
LEFT JOIN (SELECT student_id, AVG(mark) as mark,
month(exam_dt) as month
FROM student_mark GROUP BY month(exam_dt),student_id) b
on a.id= b.student_id
Output will be same table with change in data for Maximum column.
SELECT id,name,class,sex,mark,student_id,
exam_dt FROM `student6` a
LEFT JOIN (SELECT mark, student_id,exam_dt from student_mark
where exam_dt in
(SELECT MAX(exam_dt) from student_mark group by month(exam_dt)) ) b
on a.id= b.student_id
| id | name | class | sex | mark | student _id | exam_dt |
|---|---|---|---|---|---|---|
| 1 | John Deo | Four | female | 76 | 1 | 2017-04-19 |
| 1 | John Deo | Four | female | 90 | 1 | 2017-05-24 |
| 1 | John Deo | Four | female | 75 | 1 | 2017-06-21 |
| 2 | Max Ruin | Three | male | 75 | 2 | 2017-04-19 |
| 2 | Max Ruin | Three | male | 86 | 2 | 2017-05-24 |
| 2 | Max Ruin | Three | male | 87 | 2 | 2017-06-21 |
| 3 | Arnold | Three | male | 72 | 3 | 2017-04-19 |
| 3 | Arnold | Three | male | 80 | 3 | 2017-05-24 |
| 3 | Arnold | Three | male | 61 | 3 | 2017-06-21 |
| 4 | Krish Star | Four | female | 82 | 4 | 2017-04-19 |
| 4 | Krish Star | Four | female | 85 | 4 | 2017-05-24 |
| 4 | Krish Star | Four | female | 87 | 4 | 2017-06-21 |
| 5 | John Mike | Four | female | 95 | 5 | 2017-04-19 |
| 5 | John Mike | Four | female | 84 | 5 | 2017-05-24 |
| 5 | John Mike | Four | female | 87 | 5 | 2017-06-21 |
SELECT a.id,a.name,a.class,b.mark,c.h_name FROM `student6` a
LEFT JOIN
(SELECT student_id, MAX(mark) as mark FROM student_mark
GROUP BY student_id ) b
on a.id= b.student_id
LEFT JOIN student_house c on a.house_id=c.house_id
| id | name | class | mark | h_name |
|---|---|---|---|---|
| 1 | John Deo | Four | 93 | Queen |
| 2 | Max Ruin | Three | 87 | King |
| 3 | Arnold | Three | 80 | King |
| 4 | Krish Star | Four | 87 | Jack |
| 5 | John Mike | Four | 95 | Queen |
SELECT a.id,a.name,a.class,b.mark,c.h_name FROM `student6` a LEFT JOIN (SELECT student_id, MAX(mark) as mark FROM student_mark GROUP BY student_id ) b on a.id= b.student_id LEFT JOIN student_house c on a.house_id=c.house_id order by h_name
| id | name | class | mark | h_name |
|---|---|---|---|---|
| 4 | Krish Star | Four | 87 | Jack |
| 3 | Arnold | Three | 80 | King |
| 2 | Max Ruin | Three | 87 | King |
| 1 | John Deo | Four | 93 | Queen |
| 5 | John Mike | Four | 95 | Queen |
SELECT id,name,class,sex,student_id,mark FROM `student6` a
LEFT JOIN (SELECT student_id, AVG(mark) as mark FROM student_mark
GROUP BY student_id )
b on a.id= b.student_id order by mark desc limit 0,1
| id | name | class | sex | student_id | mark |
|---|---|---|---|---|---|
| 5 | John Mike | Four | female | 5 | 85.5000 |
Author & Instructor at plus2net
I write and maintain practical tutorials on Python, PHP, SQL, JavaScript, HTML, jQuery, and web development at plus2net. The tutorials focus on clear explanations, working examples, and code that readers can test and adapt while learning.