Bird
Raised Fist0
MySQLquery~10 mins

MIN and MAX functions in MySQL - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - MIN and MAX functions
Start with a column of values
↓
Apply MIN function
→Find smallest value
↓
Apply MAX function
→Find largest value
↓
Return the result
The MIN and MAX functions scan a column of values to find the smallest and largest values, then return those results.
Execution Sample
MySQL
SELECT MIN(age) AS Youngest, MAX(age) AS Oldest FROM people;
This query finds the youngest and oldest ages from the 'people' table.
Execution Table
StepActionValues ScannedMIN ResultMAX Result
1Start scanning 'age' column[23, 45, 31, 19, 54]NULLNULL
2Compare first value (23)[23, 45, 31, 19, 54]2323
3Compare second value (45)[23, 45, 31, 19, 54]2345
4Compare third value (31)[23, 45, 31, 19, 54]2345
5Compare fourth value (19)[23, 45, 31, 19, 54]1945
6Compare fifth value (54)[23, 45, 31, 19, 54]1954
7Return results[23, 45, 31, 19, 54]1954
💡 All values scanned; MIN is 19 and MAX is 54
Variable Tracker
VariableStartAfter 1After 2After 3After 4After 5Final
MINNULL232323191919
MAXNULL234545455454
Key Moments - 3 Insights
Why does MIN start as NULL before scanning values?
MIN starts as NULL because no values have been checked yet. As shown in execution_table step 1, it updates to the first value scanned (23) at step 2.
Why does MAX update when a larger value is found?
MAX updates only when a scanned value is larger than the current MAX. For example, at step 3, 45 is larger than 23, so MAX changes to 45.
What happens if the column has NULL values?
MIN and MAX ignore NULL values and only consider actual numbers. This is why the example only shows numeric values in the scanned list.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table at step 4, what is the MIN value?
A19
B23
C31
D45
💡 Hint
Check the MIN Result column at step 4 in the execution_table.
At which step does the MAX value first change from 23 to a higher number?
AStep 2
BStep 4
CStep 3
DStep 5
💡 Hint
Look at the MAX Result column in execution_table rows for step 2 and 3.
If the 'age' column had a NULL value, how would MIN and MAX treat it?
AThey would ignore NULL values
BThey would treat NULL as zero
CThey would return NULL as the result
DThey would cause an error
💡 Hint
Refer to key_moments explanation about NULL values.
Concept Snapshot
MIN(column) returns the smallest value in a column.
MAX(column) returns the largest value in a column.
They ignore NULL values.
Use SELECT MIN(col), MAX(col) FROM table;
Results are single values summarizing the column.
Full Transcript
The MIN and MAX functions in SQL find the smallest and largest values in a column. They start with no value (NULL) and update as they scan each row. For example, scanning ages 23, 45, 31, 19, and 54, MIN updates from NULL to 23, then finally to 19, the smallest. MAX updates from NULL to 23, then to 45, and finally to 54, the largest. NULL values are ignored during this process. The final result is a single row showing the smallest and largest values found.

Practice

(1/5)
1. What does the MIN function do in MySQL?
easy
A. Finds the smallest value in a column
B. Finds the largest value in a column
C. Counts the number of rows
D. Calculates the average value

Solution

  1. Step 1: Understand the purpose of MIN function

    The MIN function is designed to find the smallest value in a specified column of a table.
  2. Step 2: Compare with other aggregate functions

    Unlike MAX which finds the largest value, MIN specifically returns the minimum value.
  3. Final Answer:

    Finds the smallest value in a column -> Option A
  4. Quick Check:

    MIN = smallest value [OK]
Hint: MIN always returns the smallest value in a column [OK]
Common Mistakes:
  • Confusing MIN with MAX
  • Thinking MIN counts rows
  • Assuming MIN calculates average
2. Which of the following is the correct syntax to find the maximum value in the price column of a table named products?
easy
A. SELECT MAX(price) IN products;
B. SELECT MAX price FROM products;
C. SELECT MAX(price) FROM products WHERE;
D. SELECT MAX(price) FROM products;

Solution

  1. Step 1: Recall correct SQL aggregate function syntax

    The correct syntax for using MAX is: SELECT MAX(column_name) FROM table_name;
  2. Step 2: Check each option for syntax errors

    SELECT MAX(price) FROM products; uses correct parentheses and FROM clause. Options A, B, and D have syntax errors or incomplete clauses.
  3. Final Answer:

    SELECT MAX(price) FROM products; -> Option D
  4. Quick Check:

    MAX(price) syntax = SELECT MAX(price) FROM table [OK]
Hint: Use parentheses around column name with MAX [OK]
Common Mistakes:
  • Omitting parentheses in MAX function
  • Using IN instead of FROM
  • Leaving incomplete WHERE clause
3. Given the table employees with a column salary containing values (3000, 4500, 2500, 5000), what will this query return?
SELECT MIN(salary), MAX(salary) FROM employees;
medium
A. (4500, 3000)
B. (2500, 5000)
C. (5000, 2500)
D. (3000, 4500)

Solution

  1. Step 1: Identify the smallest and largest salary values

    The salaries are 3000, 4500, 2500, and 5000. The smallest is 2500 and the largest is 5000.
  2. Step 2: Understand the query output format

    The query returns a single row with two columns: MIN(salary) and MAX(salary), so the output is (2500, 5000).
  3. Final Answer:

    (2500, 5000) -> Option B
  4. Quick Check:

    MIN=2500, MAX=5000 [OK]
Hint: MIN returns smallest, MAX returns largest value [OK]
Common Mistakes:
  • Mixing up MIN and MAX values
  • Assuming output is multiple rows
  • Confusing order of returned values
4. What is wrong with this query to find the minimum age from the users table?
SELECT MIN age FROM users;
medium
A. Missing parentheses around the column name
B. Incorrect table name
C. MIN cannot be used with numeric columns
D. Missing WHERE clause

Solution

  1. Step 1: Check the syntax of the MIN function usage

    The MIN function requires parentheses around the column name, like MIN(age).
  2. Step 2: Identify the error in the query

    The query is missing parentheses, so it will cause a syntax error.
  3. Final Answer:

    Missing parentheses around the column name -> Option A
  4. Quick Check:

    MIN requires parentheses [OK]
Hint: Always use parentheses with MIN and MAX [OK]
Common Mistakes:
  • Omitting parentheses in function calls
  • Assuming WHERE clause is mandatory
  • Thinking MIN can't be used on numbers
5. You have a table orders with columns order_id, customer_id, and amount. How would you write a query to find the highest order amount for each customer?
hard
A. SELECT customer_id, amount FROM orders WHERE amount = MAX(amount);
B. SELECT MAX(amount) FROM orders GROUP BY customer_id;
C. SELECT customer_id, MAX(amount) FROM orders GROUP BY customer_id;
D. SELECT customer_id, MAX(amount) FROM orders;

Solution

  1. Step 1: Understand the requirement to group by customer

    We want the highest order amount per customer, so we must group results by customer_id.
  2. Step 2: Use MAX with GROUP BY

    Using MAX(amount) with GROUP BY customer_id returns the maximum amount for each customer.
  3. Step 3: Check each option

    SELECT customer_id, MAX(amount) FROM orders GROUP BY customer_id; correctly groups by customer_id and selects MAX(amount). SELECT MAX(amount) FROM orders GROUP BY customer_id; misses customer_id in SELECT. SELECT customer_id, amount FROM orders WHERE amount = MAX(amount); uses invalid WHERE with aggregate. SELECT customer_id, MAX(amount) FROM orders; lacks GROUP BY.
  4. Final Answer:

    SELECT customer_id, MAX(amount) FROM orders GROUP BY customer_id; -> Option C
  5. Quick Check:

    MAX with GROUP BY returns max per group [OK]
Hint: Use GROUP BY with MAX to get max per group [OK]
Common Mistakes:
  • Not using GROUP BY when aggregating per group
  • Using WHERE with aggregate functions incorrectly
  • Selecting columns not in GROUP BY without aggregation
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