FAQ: Aggregate Functions - Having


#1

This community-built FAQ covers the “Having” exercise from the lesson “Aggregate Functions”.

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

Web Development
Data Science

Learn SQL

FAQs on the exercise Having

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!


#2

Hi,
How come we use * with clause COUNT to count number of apps at each price point. I thought we need to use COUNT(id ) or COUNT(name)? Don’t we use * to include everything? Thank you


#3

I had a similar questions. I am not understanding why HAVING COUNT(*) > 10… Infact I used HAVING COUNT(price) > 10 and the task was checked off as if done correctly. It was not until I looked at the hint that I realized I had done the query ‘wrong’ (even though the task was ‘completed’ when I used HAVING COUNT(price) > 10)


#4

Same here. Would still love an answer if anyone has it?
Thanks.


#5

The difference between the COUNT (*) function and COUNT (column name | expression) is that the second one (like the other aggregate functions) does not take into account NULL values ​​in the calculation.


#6

I had this same question, after coming here and not finding an answer I played around with the code a bit and it helped me understand more.

Anyone else having this same issue I’d recommend running the code with just

SELECT price, ROUND(AVG(downloads)), COUNT (*)
FROM fake_apps;

and seeing what the “count” function is doing.

So when you run

SELECT price, 
   ROUND(AVG(downloads)),
   COUNT(*)
FROM fake_apps
GROUP BY price
HAVING COUNT(*) > 10;

Basically you’re saying, select these rows and count them, then group them by price, for the ones that have more than 10 rows in their group.

Sorry I can’t put it more succinctly lol but that’s what helped me!


#7

Why can’t we use where clause instead of having? in the example given, we can clearly get the condition by usnig where count(*) > 10;


#8

Having is specifically for aggregate functions. Where, WHERE is for data points in just a regular old query