FAQ: Code Challenge: Aggregate Functions - Code Challenge 3

This community-built FAQ covers the “Code Challenge 3” exercise from the lesson “Code Challenge: Aggregate Functions”.

Paths and Courses
This exercise can be found in the following Codecademy content:

Web Development
Data Science

FAQs on the exercise Code Challenge 3

Join the Discussion. Help a fellow learner on their journey.

Ask or answer a question about this exercise by clicking reply (reply) below!

Agree with a comment or answer? Like (like) to up-vote the contribution!

Need broader help or resources? Head here.

Looking for motivation to keep learning? Join our wider discussions.

Learn more about how to use this guide.

Found a bug? Report it!

Have a question about your account or billing? Reach out to our customer support team!

None of the above? Find out where to ask other questions here!

to curriculum developers:
It would have been nice have one or two more hints in the exe before having to go to full solution…

4 Likes

I was able to complete the challenge, but I was curious why COUNT(watch_duration_in_minutes) works and not COUNT(duration). As far as I understand, the ROUND command doesn’t actually change the data in the table, so how was COUNT able to count the rounded values when I specified the original column name, and not the renamed round results?

In other words, why is the below example right?
Correct:
SELECT ROUND(watch_duration_in_minutes, 0) AS duration, COUNT(watch_duration_in_minutes) AS “count” FROM watch_history;

Not correct:
SELECT ROUND(watch_duration_in_minutes, 0) AS duration, COUNT(duration) AS “count” FROM watch_history;

1 Like

Completely agree with your solution. Not sure why it was shown incorrect

I passed this challenge without order by… why i need it?

-Spoiler-

select
ROUND(watch_duration_in_minutes)
as ‘duration’,
count(watch_duration_in_minutes)
as ‘count’
from watch_history
group by 1

;

2 Likes

As far as I can understand, the “rename process” in order to be completed (by using SELECT… AS…), we have to write the whole command , I mean finish the command by writing the name of the table (FROM watch_history).
So, COUNT (duration) cannnot be identified since the new name (duration) has not been applied yet (the command SELECT … AS is still incomplete).
On the other hand, in whichever command (GROUP BY, ORDER BY) is written afterwards, the new name (duration) can be used.

Same here. Just tried solving the problem and it seems as if the ORDER BY function is not only useless, but it also hampers the resulting query. Your solution works, but with the addition of the ORDER BY function the query turns into null.

It works either way when I copy-paste @karub38’s code with or without ORDER BY 1. (A semicolon needs to be added, though) . Without ORDER BY the ordering appears to be what we want, but are we guaranteed that ordering?