Interview Questions, Answers and Tutorials

Limiting Results with LIMIT and OFFSET

Limiting Results with LIMIT and OFFSET

Welcome to another detailed SQL tutorial! Today, we’ll be learning about two important SQL commands, LIMIT and OFFSET, which allows you to control how many rows you get from a database query. This is super useful when working with large datasets and you only want to see a small portion of the results.

What is LIMIT?

The LIMIT command in SQL helps you limit the number of rows returned by a query. This means if your table has hundreds of thousands of rows, you can use LIMIT it to display only a small set of those rows.

Example: Imagine you have a table Students that has information about 100 students. But you only want to see the first 5 rows of the table. You can use LIMIT it to achieve this.

SELECT * FROM Students LIMIT 5;

This query will show the first 5 rows from the Students table.

What is OFFSET?

The OFFSET command is used in combination with LIMIT. It allows you to skip a certain number of rows before starting to return results. This is helpful when you need to view results from the middle of the dataset, not just the beginning.

Example: Let’s say you want to see the next 5 rows, starting from the 6th row. You can combine LIMIT and OFFSET like this:

SELECT * FROM Students LIMIT 5 OFFSET 5;

This query will skip the first 5 rows and show rows 6 to 10.

How to Use LIMIT and OFFSET Together?

You can use both LIMIT and OFFSET together to view any part of your data. The syntax looks like this:

SELECT * FROM table_name LIMIT number_of_rows OFFSET number_of_rows_to_skip;

For example, if you have a Products table and want to skip the first 10 products and then display the next 5 products, the query would look like:

SELECT * FROM Products LIMIT 5 OFFSET 10;

This would return rows 11 to 15.

Combining LIMIT and OFFSET with ORDER BY

You can also use LIMIT and OFFSET with the ORDER BY clause. This allows you to sort your results before limiting or offsetting them. For example:

SELECT * FROM Students ORDER BY grade DESC LIMIT 5 OFFSET 10;

This query will show the next 5 students (rows 11-15) when sorted by the grade column in descending order.

Why Use LIMIT and OFFSET?

  • Paginate results: When you have a lot of data, you can use LIMIT and OFFSET to show a small chunk of data at a time. This is especially helpful in web applications (like showing 10 products per page).
  • Improve performance: Limiting the number of rows can make your queries faster, especially when working with large datasets.
  • Control your data: Sometimes you might only need the first few results or skip certain rows; these commands help you do that efficiently.

Practice Questions

Question 1: Show the first 10 rows from the Employees table.

Answer:

SELECT * FROM Employees LIMIT 10;

Question 2: Display the next 5 rows after skipping the first 10 rows from the Orders table.

Answer:

SELECT * FROM Orders LIMIT 5 OFFSET 10;

Question 3: Get the 3rd page of results from the Books table, with 10 books per page.

(Assume each page has 10 books) Answer:

For the 3rd page, you would skip the first 20 rows (2 pages × 10 books per page) and limit it to 10 rows.

SELECT * FROM Books LIMIT 10 OFFSET 20;

Question 4: Show the last 5 records from the Customers table ordered by registration_date in descending order.

Answer:

SELECT * FROM Customers ORDER BY registration_date DESC LIMIT 5;


Interview Questions

Question 1: What is the difference between LIMIT and OFFSET in SQL?

Answer:

  • LIMIT is used to specify the maximum number of rows you want to return from a query.
  • OFFSET is used to skip a certain number of rows before starting to return results.

Question 2: How would you retrieve the 10th to 20th row from a Products table ordered by price?

Answer:

SELECT * FROM Products ORDER BY price LIMIT 10 OFFSET 9;

Explanation:

  • We want rows from the 10th to the 20th, so we limit it to 10 rows and skip the first 9 rows (because OFFSET starts counting from 0).

Question 3: Can you use LIMIT and OFFSET in a JOIN query?

Answer: Yes, you can. Here’s an example:

SELECT Orders.order_id, Customers.customer_name 
FROM Orders
JOIN Customers ON Orders.customer_id = Customers.customer_id
LIMIT 5 OFFSET 10;

This query will join the Orders and Customers tables and then limit the results to 5 rows starting from row 11.


  • LIMIT: Restricts the number of rows returned.
  • OFFSET: Skips a specified number of rows before starting to return results.
  • You can combine these to manage large datasets, paginate results, or improve query performance.
  • ORDER BY can be used alongside LIMIT and OFFSET to sort results before limiting or skipping rows.

Now you’re ready to use LIMIT and OFFSET like a pro! Keep practicing, and soon you’ll be able to write even more efficient and powerful SQL queries.