Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialGeovani Mejia
Front End Web Development Techdegree Student 7,940 PointsQuestion on the GROUP BY keyword
HERE IS THE CHALLENGE: Which teachers teach a class during all 7 periods?
SELECT * FROM TEACHERS INNER JOIN CLASSES ON CLASSES.TEACHER_ID = TEACHERS.ID GROUP BY TEACHERS.ID;
CONFUSION:
I dont understand how the keyword GROUP BY TEACHERS.ID shows all the teachers teaching 7 periods. When you run the query, the PERIOD_ID COLUMN shows a 7. What does this 7 mean?
1 Answer
Steven Parker
231,184 PointsIt doesn't really mean anything in this query. Since the GROUP BY guarantees only one line per teacher, the value shown in that column is just the period number of the last entry for that teacher in the CLASSES table.
If you watch the entire lesson to the end, you'll see that an aggregate function is added to count up the classes taught by each teacher and then test that with a HAVING filter to be sure each teacher shown has all 7.