Bird
Raised Fist0
PostgreSQLquery~5 mins

COUNT, SUM, AVG, MIN, MAX in PostgreSQL - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the COUNT() function do in SQL?
COUNT() returns the number of rows that match a specified condition or all rows if no condition is given.
Click to reveal answer
beginner
How does the SUM() function work in SQL?
SUM() adds up all the values in a numeric column and returns the total sum.
Click to reveal answer
beginner
What is the purpose of the AVG() function?
AVG() calculates the average (mean) value of a numeric column by adding all values and dividing by the count.
Click to reveal answer
beginner
Explain what MIN() and MAX() functions do.
MIN() returns the smallest value in a column, and MAX() returns the largest value in a column.
Click to reveal answer
intermediate
Can aggregate functions like COUNT(), SUM(), AVG(), MIN(), MAX() be used without GROUP BY?
Yes, they can be used without GROUP BY to calculate values over the entire table or filtered rows.
Click to reveal answer
Which SQL function counts the number of rows in a table?
AAVG()
BSUM()
CCOUNT()
DMAX()
What does SUM(salary) return in a table of employees?
AThe total sum of all salaries
BThe average salary
CThe highest salary
DThe total number of employees
Which function would you use to find the smallest value in a column?
AMAX()
BAVG()
CCOUNT()
DMIN()
If you want the average price of products, which function is correct?
AAVG(price)
BSUM(price)
CCOUNT(price)
DMAX(price)
Can you use aggregate functions without GROUP BY to get a single summary value?
ANo, GROUP BY is always required
BYes, it returns a summary for the whole table
COnly COUNT() can be used without GROUP BY
DOnly SUM() and AVG() can be used without GROUP BY
Describe how COUNT(), SUM(), AVG(), MIN(), and MAX() functions work in SQL.
Think about what each function returns when applied to a column.
You got /5 concepts.
    Explain when you would use aggregate functions with and without GROUP BY.
    Consider how grouping changes the output of aggregate functions.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the SQL function COUNT(column_name) do in a PostgreSQL query?
      easy
      A. Finds the average of all values in the specified column.
      B. Counts the number of non-null values in the specified column.
      C. Calculates the sum of all values in the specified column.
      D. Returns the maximum value in the specified column.

      Solution

      1. Step 1: Understand COUNT function behavior

        The COUNT function counts how many rows have a non-null value in the specified column.
      2. Step 2: Differentiate from other aggregate functions

        SUM adds values, AVG finds average, MAX finds maximum, so they do not count rows.
      3. Final Answer:

        Counts the number of non-null values in the specified column. -> Option B
      4. Quick Check:

        COUNT = number of non-null rows [OK]
      Hint: COUNT counts non-null rows, not sums or averages [OK]
      Common Mistakes:
      • Thinking COUNT sums values
      • Assuming COUNT includes nulls
      • Confusing COUNT with AVG or MAX
      2. Which of the following is the correct syntax to find the average of the price column in a table named products?
      easy
      A. SELECT AVG price FROM products;
      B. SELECT AVG[price] FROM products;
      C. SELECT AVG(price) FROM products;
      D. SELECT AVERAGE(price) FROM products;

      Solution

      1. Step 1: Recall correct function syntax

        Aggregate functions like AVG require parentheses around the column name: AVG(column_name).
      2. Step 2: Check each option's syntax

        SELECT AVG(price) FROM products; uses correct syntax: AVG(price). Options A, B, and C have syntax errors or invalid function names.
      3. Final Answer:

        SELECT AVG(price) FROM products; -> Option C
      4. Quick Check:

        AVG(column) uses parentheses [OK]
      Hint: Use parentheses around column in aggregate functions [OK]
      Common Mistakes:
      • Omitting parentheses in AVG
      • Using wrong function name like AVERAGE
      • Using brackets instead of parentheses
      3. Given the table sales with column amount containing values (100, 200, NULL, 300), what is the result of this query?
      SELECT COUNT(amount), SUM(amount), AVG(amount), MIN(amount), MAX(amount) FROM sales;
      medium
      A. (4, 600, 150, 100, 300)
      B. (4, 600, 200, 100, 300)
      C. (3, 600, 150, 100, 300)
      D. (3, 600, 200, 100, 300)

      Solution

      1. Step 1: Count non-null values in amount

        Values are 100, 200, NULL, 300. COUNT(amount) counts non-null values = 3.
      2. Step 2: Calculate SUM, AVG, MIN, MAX ignoring NULL

        SUM = 100+200+300 = 600; AVG = 600/3 = 200; MIN = 100; MAX = 300.
      3. Final Answer:

        (3, 600, 200, 100, 300) -> Option D
      4. Quick Check:

        COUNT=3, SUM=600, AVG=200 [OK]
      Hint: Aggregate functions ignore NULL except COUNT(*) [OK]
      Common Mistakes:
      • Counting NULL as a value in COUNT(column)
      • Dividing AVG by total rows including NULL
      • Confusing COUNT(column) with COUNT(*)
      4. Identify the error in this query:
      SELECT COUNT(*), SUM(price), AVG(price) FROM products WHERE price > 'ten';
      medium
      A. Comparing price (numeric) with string 'ten' causes error.
      B. Using COUNT(*) with WHERE clause is invalid.
      C. SUM(price) cannot be used with AVG(price) in same query.
      D. Missing GROUP BY clause for aggregate functions.

      Solution

      1. Step 1: Analyze WHERE clause condition

        The condition price > 'ten' compares a numeric column to a string, which causes a type error in PostgreSQL.
      2. Step 2: Check other parts of the query

        COUNT(*) with WHERE is valid; SUM and AVG can be used together; GROUP BY not needed without grouping.
      3. Final Answer:

        Comparing price (numeric) with string 'ten' causes error. -> Option A
      4. Quick Check:

        Numeric compared to string causes error [OK]
      Hint: Compare numeric columns only with numbers, not strings [OK]
      Common Mistakes:
      • Assuming COUNT(*) cannot be used with WHERE
      • Thinking GROUP BY is always required with aggregates
      • Mixing data types in WHERE conditions
      5. You have a table orders with columns customer_id and total_amount. How do you write a query to find the average order amount for each customer, but only include customers with at least 5 orders?
      hard
      A. SELECT customer_id, AVG(total_amount) FROM orders GROUP BY customer_id HAVING COUNT(*) >= 5;
      B. SELECT customer_id, AVG(total_amount) FROM orders WHERE COUNT(*) >= 5 GROUP BY customer_id;
      C. SELECT customer_id, AVG(total_amount) FROM orders GROUP BY customer_id WHERE COUNT(*) >= 5;
      D. SELECT customer_id, AVG(total_amount) FROM orders HAVING COUNT(*) >= 5 GROUP BY customer_id;

      Solution

      1. Step 1: Group orders by customer_id

        Use GROUP BY customer_id to aggregate orders per customer.
      2. Step 2: Filter groups with HAVING clause

        HAVING COUNT(*) >= 5 filters customers with at least 5 orders.
      3. Step 3: Calculate average order amount per customer

        Use AVG(total_amount) to find average order value per customer.
      4. Final Answer:

        SELECT customer_id, AVG(total_amount) FROM orders GROUP BY customer_id HAVING COUNT(*) >= 5; -> Option A
      5. Quick Check:

        GROUP BY + HAVING filters groups [OK]
      Hint: Use HAVING to filter groups after GROUP BY [OK]
      Common Mistakes:
      • Using WHERE instead of HAVING for group filters
      • Placing HAVING before GROUP BY
      • Not grouping by customer_id
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard