我在使用 GROUP BY 和 JOIN 時遇到問題
我有 2 個表: 1. STUDENTS_TO_COURSE 帶有 course_id 和 student_id 列 2. 帶有 id、name、age 列的學生
我需要做的是找到平均學生年齡最高的課程
我正在考慮使用 join 來聯合這些表,然后以某種方式對其進行分組
我也明白我需要使用 AVG 來計算聯接表上的平均學生年齡
select STUDENTS_TO_COURSE.course_id as course_id,
students.id as student,
students.age as age
from STUDENTS_TO_COURSE
join students on STUDENTS_TO_COURSE.student_id = students.id
我想了幾天,但想不出任何想法
有什么線索可以解決這個問題嗎?
提前致謝
uj5u.com熱心網友回復:
嘗試這個:
select STUDENTS_TO_COURSE.course_id as course_id,
MAX(AVG(age)) as avg_age
from STUDENTS_TO_COURSE
join students on STUDENTS_TO_COURSE.student_id = students.id
group by course_id,age
uj5u.com熱心網友回復:
select STUDENTS_TO_COURSE.course_id as course_id,
avg(age) as age
from STUDENTS_TO_COURSE
join students on STUDENTS_TO_COURSE.student_id = students.id group by course_id order by age desc limit 1
uj5u.com熱心網友回復:
如果您的 SQL 代碼是正確的,下面會以平均年齡降序獲取課程 ID 和平均年齡的串列。您想要的是串列的第一行。
select
STUDENTS_TO_COURSE.course_id as course_id,
AVG(students.age) as avg_age
from STUDENTS_TO_COURSE
join students on STUDENTS_TO_COURSE.student_id = students.id
GROUP BY STUDENTS_TO_COURSE.course_id
ORDER BY AVG(students.age) DESC
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/336003.html
