Understanding GROUP BY and ORDER BY in SQL

 3 min read

YouTube video ID: LXwfzIRD-Ds

Source: YouTube video by Alex The AnalystWatch original video

PDF

Introduction

In this article we recap the final concepts of a beginner SQL series: the GROUP BY and ORDER BY clauses. By the end you will know how they differ from DISTINCT, how to aggregate data, and how to sort results using one or multiple columns.

GROUP BY vs. DISTINCT

  • DISTINCT returns only the unique values of a column.
  • GROUP BY also returns unique values but aggregates rows that share those values into a single group, allowing you to apply aggregate functions such as COUNT, SUM, AVG, etc.
  • Example: SELECT DISTINCT gender FROM people; might list female and male. SELECT gender, COUNT(*) FROM people GROUP BY gender; returns two rows – one for each gender – with the count of records in each group.

Using GROUP BY with Multiple Columns

  • You can group by more than one column, e.g., GROUP BY gender, age.
  • The result set contains a row for each unique combination of the grouped columns.
  • If two rows share the same gender and age, they are combined and the aggregate function reflects the total for that combination.
  • In the video example, adding age to the GROUP BY produced rows like:
  • male, 29, count = 1
  • female, 30, count = 1
  • (no duplicate gender‑age pairs, so each count is 1).

COUNT and Derived Columns

  • Columns created on the fly, such as COUNT(gender) AS count_gender, are derived columns. They do not exist in the original table, so they do not need to appear in the GROUP BY clause.
  • Only the original columns used for grouping (e.g., gender, age) must be listed after GROUP BY.

ORDER BY Basics

  • ORDER BY sorts the final result set.
  • Default order is ascending (smallest to largest).
  • Syntax: ORDER BY count_gender ASC; or ORDER BY count_gender DESC; for descending order.
  • You can sort by any column, including aggregated ones.

Ordering by Multiple Columns

  • You can specify several columns: ORDER BY age ASC, gender DESC;
  • The first column determines the primary sort; subsequent columns break ties.
  • Example from the video:
  • ORDER BY age ASC, gender ASC → ages from youngest to oldest, and within each age females appear before males.
  • Changing the direction for one column (gender DESC) flips the gender order while keeping the age order.

Using Column Positions Instead of Names

  • SQL allows numeric positions to refer to columns in the SELECT list.
  • Example: ORDER BY 1 DESC, 2 ASC sorts by the first selected column, then the second.
  • This shortcut is handy for quick queries on small result sets.

Practical Tips

  • Practice: Create a few tables, write queries that use GROUP BY and ORDER BY, and experiment with different aggregates.
  • Think in terms of questions: What do you want to know from the data? Use GROUP BY to summarize and ORDER BY to present the summary in a meaningful order.
  • Progression: After mastering these basics, move on to intermediate topics like joins and subqueries, then to advanced performance‑tuning techniques.

Next Steps

  • The next video in the series covers joins, subqueries, and more complex query patterns.
  • Keep the basics handy; they are the foundation for everyday SQL work.

GROUP BY lets you collapse rows into meaningful aggregates, while ORDER BY lets you present those aggregates in a clear, sorted order. Mastering these two clauses completes the SQL basics and prepares you for more advanced data‑manipulation techniques.

Frequently Asked Questions

Who is Alex The Analyst on YouTube?

Alex The Analyst is a YouTube channel that publishes videos on a range of topics. Browse more summaries from this channel below.

Does this page include the full transcript of the video?

Yes, the full transcript for this video is available on this page. Click 'Show transcript' in the sidebar to read it.

PDF