Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
GROUP BY | Grouping
Intermediate SQL
course content

Course Content

Intermediate SQL

Intermediate SQL

1. Grouping
2. Nested Subqueries
3. Joining Tables
4. DDL and DML in SQL

GROUP BY

Hi there! Welcome to the Intermediate SQL course!

In the first section, we're diving into how we can group and aggregate data within our tables.

Let's understand what "grouping data" means using a simple example of an employees table:

Now, let's imagine we have a task to "find out the number of employees in each department." To do this, we will group the data by the department column and use aggregation with the COUNT(*) function.

Here's what the implementation will look like:

123
SELECT department, COUNT(*) AS number_of_employees FROM employees GROUP BY department
copy

So, as you can see, the syntax for grouping data looks like this:

Note

AGG_FUNC means aggregate functions like MAX, MIN, COUNT, etc.

This syntax exists to find certain values using aggregate functions in specific columns.

Let's consider another example: we've been tasked with finding the department with the highest average salary.

To retrieve such data, we need to group the data by the department column and then use the AVG() function to calculate the average salary:

123
SELECT department, AVG(salary) as average_salary FROM employees GROUP BY department
copy

Note

Please note that we will not be using this table in assignments; the employees table will be used solely for demonstrating syntax examples and their usage.

In this course, we will work with the Montreal Metro system database, which contains the metro_travel_time table.

This table will contain information about the station line(line_name), its name(station_name), and the amount of time it takes for a train to travel from one station to the next one(time_to_next_station).

Here is what this table looks like and the data preview in it:

As you can see, this is not a complex table. Let's think about where we can use grouping here.

The most obvious option is grouping by the colors of metro lines. That means we can aggregate the data, grouping it by the color of the metro line.

Now, let's practice grouping by completing a task.

Task

Your task is to find the longest time until the next station on each line. This will allow us to determine the longest travel time between stations for each metro line. To do this, use the MAX() function and alias it as max_time, grouping the data by the line_name column.

Once you've completed this task, click the button below the code to check your solution.

Task

Your task is to find the longest time until the next station on each line. This will allow us to determine the longest travel time between stations for each metro line. To do this, use the MAX() function and alias it as max_time, grouping the data by the line_name column.

Once you've completed this task, click the button below the code to check your solution.

Switch to desktop for real-world practiceContinue from where you are using one of the options below

Everything was clear?

Section 1. Chapter 1
toggle bottom row

GROUP BY

Hi there! Welcome to the Intermediate SQL course!

In the first section, we're diving into how we can group and aggregate data within our tables.

Let's understand what "grouping data" means using a simple example of an employees table:

Now, let's imagine we have a task to "find out the number of employees in each department." To do this, we will group the data by the department column and use aggregation with the COUNT(*) function.

Here's what the implementation will look like:

123
SELECT department, COUNT(*) AS number_of_employees FROM employees GROUP BY department
copy

So, as you can see, the syntax for grouping data looks like this:

Note

AGG_FUNC means aggregate functions like MAX, MIN, COUNT, etc.

This syntax exists to find certain values using aggregate functions in specific columns.

Let's consider another example: we've been tasked with finding the department with the highest average salary.

To retrieve such data, we need to group the data by the department column and then use the AVG() function to calculate the average salary:

123
SELECT department, AVG(salary) as average_salary FROM employees GROUP BY department
copy

Note

Please note that we will not be using this table in assignments; the employees table will be used solely for demonstrating syntax examples and their usage.

In this course, we will work with the Montreal Metro system database, which contains the metro_travel_time table.

This table will contain information about the station line(line_name), its name(station_name), and the amount of time it takes for a train to travel from one station to the next one(time_to_next_station).

Here is what this table looks like and the data preview in it:

As you can see, this is not a complex table. Let's think about where we can use grouping here.

The most obvious option is grouping by the colors of metro lines. That means we can aggregate the data, grouping it by the color of the metro line.

Now, let's practice grouping by completing a task.

Task

Your task is to find the longest time until the next station on each line. This will allow us to determine the longest travel time between stations for each metro line. To do this, use the MAX() function and alias it as max_time, grouping the data by the line_name column.

Once you've completed this task, click the button below the code to check your solution.

Task

Your task is to find the longest time until the next station on each line. This will allow us to determine the longest travel time between stations for each metro line. To do this, use the MAX() function and alias it as max_time, grouping the data by the line_name column.

Once you've completed this task, click the button below the code to check your solution.

Switch to desktop for real-world practiceContinue from where you are using one of the options below

Everything was clear?

Section 1. Chapter 1
toggle bottom row

GROUP BY

Hi there! Welcome to the Intermediate SQL course!

In the first section, we're diving into how we can group and aggregate data within our tables.

Let's understand what "grouping data" means using a simple example of an employees table:

Now, let's imagine we have a task to "find out the number of employees in each department." To do this, we will group the data by the department column and use aggregation with the COUNT(*) function.

Here's what the implementation will look like:

123
SELECT department, COUNT(*) AS number_of_employees FROM employees GROUP BY department
copy

So, as you can see, the syntax for grouping data looks like this:

Note

AGG_FUNC means aggregate functions like MAX, MIN, COUNT, etc.

This syntax exists to find certain values using aggregate functions in specific columns.

Let's consider another example: we've been tasked with finding the department with the highest average salary.

To retrieve such data, we need to group the data by the department column and then use the AVG() function to calculate the average salary:

123
SELECT department, AVG(salary) as average_salary FROM employees GROUP BY department
copy

Note

Please note that we will not be using this table in assignments; the employees table will be used solely for demonstrating syntax examples and their usage.

In this course, we will work with the Montreal Metro system database, which contains the metro_travel_time table.

This table will contain information about the station line(line_name), its name(station_name), and the amount of time it takes for a train to travel from one station to the next one(time_to_next_station).

Here is what this table looks like and the data preview in it:

As you can see, this is not a complex table. Let's think about where we can use grouping here.

The most obvious option is grouping by the colors of metro lines. That means we can aggregate the data, grouping it by the color of the metro line.

Now, let's practice grouping by completing a task.

Task

Your task is to find the longest time until the next station on each line. This will allow us to determine the longest travel time between stations for each metro line. To do this, use the MAX() function and alias it as max_time, grouping the data by the line_name column.

Once you've completed this task, click the button below the code to check your solution.

Task

Your task is to find the longest time until the next station on each line. This will allow us to determine the longest travel time between stations for each metro line. To do this, use the MAX() function and alias it as max_time, grouping the data by the line_name column.

Once you've completed this task, click the button below the code to check your solution.

Switch to desktop for real-world practiceContinue from where you are using one of the options below

Everything was clear?

Hi there! Welcome to the Intermediate SQL course!

In the first section, we're diving into how we can group and aggregate data within our tables.

Let's understand what "grouping data" means using a simple example of an employees table:

Now, let's imagine we have a task to "find out the number of employees in each department." To do this, we will group the data by the department column and use aggregation with the COUNT(*) function.

Here's what the implementation will look like:

123
SELECT department, COUNT(*) AS number_of_employees FROM employees GROUP BY department
copy

So, as you can see, the syntax for grouping data looks like this:

Note

AGG_FUNC means aggregate functions like MAX, MIN, COUNT, etc.

This syntax exists to find certain values using aggregate functions in specific columns.

Let's consider another example: we've been tasked with finding the department with the highest average salary.

To retrieve such data, we need to group the data by the department column and then use the AVG() function to calculate the average salary:

123
SELECT department, AVG(salary) as average_salary FROM employees GROUP BY department
copy

Note

Please note that we will not be using this table in assignments; the employees table will be used solely for demonstrating syntax examples and their usage.

In this course, we will work with the Montreal Metro system database, which contains the metro_travel_time table.

This table will contain information about the station line(line_name), its name(station_name), and the amount of time it takes for a train to travel from one station to the next one(time_to_next_station).

Here is what this table looks like and the data preview in it:

As you can see, this is not a complex table. Let's think about where we can use grouping here.

The most obvious option is grouping by the colors of metro lines. That means we can aggregate the data, grouping it by the color of the metro line.

Now, let's practice grouping by completing a task.

Task

Your task is to find the longest time until the next station on each line. This will allow us to determine the longest travel time between stations for each metro line. To do this, use the MAX() function and alias it as max_time, grouping the data by the line_name column.

Once you've completed this task, click the button below the code to check your solution.

Switch to desktop for real-world practiceContinue from where you are using one of the options below
Section 1. Chapter 1
Switch to desktop for real-world practiceContinue from where you are using one of the options below
We're sorry to hear that something went wrong. What happened?
some-alt