educative.io

Can GROUP BY be used without the WHERE clause?

The course content seems to indicate that the GROUP BY clause must follow the WHERE clause, but the quiz indicates the GROUP BY clause can be used without the WHERE clause. Is the latter correct?


Course: https://www.educative.io/collection/10370001/5119687241236480
Lesson: https://www.educative.io/collection/page/10370001/5119687241236480/6430059072061440

Hi @Azania_Baker-Garcia !!
The GROUP BY clause in SQL can indeed be used both with and without the WHERE clause. The WHERE clause is optional and is used to filter records before any groupings are applied.

  1. With WHERE Clause: When used, the WHERE clause filters the data based on a given condition. After this filtering, the GROUP BY clause will group the remaining rows.

    Example:

    SELECT column1, SUM(column2)
    FROM table
    WHERE column3 > 100
    GROUP BY column1;
    

    In this example, first, the table is filtered to include only those rows where column3 is greater than 100. After this filtering, the data is grouped based on column1.

  2. Without WHERE Clause: The GROUP BY clause can be used without a WHERE clause. In this case, it groups all rows in the table.

    Example:

    SELECT column1, SUM(column2)
    FROM table
    GROUP BY column1;
    

    Here, all rows in the table are grouped based on column1, without any prior filtering.

Regarding your quiz question:

The correct answer to the quiz is:

A)

NAME     MIN(AGE)
Bill     25
Emily    23
Jane     22
John     25
Mark     23
Tom      27

This output is accurate because the query groups the records by NAME and then selects the minimum AGE for each group (i.e., for each name). The GROUP BY clause works perfectly without the WHERE clause in this scenario, as it groups all records in the CUSTOMERS table based on the NAME column and then calculates the minimum age for each group.
I hope this helps. Happy Learning :blush: