Introduction
In this blog post, we'll explore advanced SQL techniques that are essential for complex data analysis and manipulation. By mastering these SQL features, you can write more efficient queries and gain deeper insights from your data.
Table of Contents
Common Table Expressions (CTE)
What is a CTE?
Benefits of using CTEs
Example of using CTEs
Subqueries
What is a Subquery?
Types of Subqueries (Scalar, Row, and Table Subqueries)
Examples of Subqueries
Window Functions
Introduction to Window Functions
Types of Window Functions (ROW_NUMBER, RANK, DENSE_RANK, etc.)
Example of using Window Functions
SQL Ranking
Understanding SQL Ranking Functions
Examples of Ranking Functions (ROW_NUMBER, RANK, DENSE_RANK)
Use Cases and Examples
UNION Operator
Introduction to UNION and UNION ALL
Differences between UNION and UNION ALL
Example of using UNION
Sample test data files for Hands-on
Employee:https://github.com/vipinputhanveetil/ctb_blog_demo_files/blob/main/databricks_files/employees.csv
Orders: https://github.com/vipinputhanveetil/ctb_blog_demo_files/blob/main/databricks_files/orders.csv
Products: https://github.com/vipinputhanveetil/ctb_blog_demo_files/blob/main/databricks_files/products.csv
Sales: https://github.com/vipinputhanveetil/ctb_blog_demo_files/blob/main/databricks_files/sales.csv
Archived products: https://github.com/vipinputhanveetil/ctb_blog_demo_files/blob/main/databricks_files/archived_products.csv
Common Table Expressions (CTE)
What is a CTE?
A CTE (Common Table Expression) is a temporary result set that you can reference within a SELECT, INSERT, UPDATE, or DELETE statement.
Benefits of using CTEs
Improves readability of complex queries.
Enables recursive queries.
Avoids repetition of subqueries.
Example of using CTEs
-- Example: Find employees with salary above average
WITH avg_salary AS (
SELECT AVG(salary) AS average_salary
FROM employees
)
SELECT employee_id, first_name, last_name, salary
FROM employees
WHERE salary > (SELECT average_salary FROM avg_salary);
2. Subqueries
What is a Subquery?
A subquery is a query nested inside another query.
Types of Subqueries
Scalar Subquery: Returns a single value.
Row Subquery: Returns one or more rows.
Table Subquery: Returns an entire table.
Examples of Subqueries
--Example: Find orders with amounts greater than the average order amount
SELECT order_id, amount
FROM orders
WHERE amount > (SELECT AVG(amount) FROM orders);
3. Window Functions
Introduction to Window Functions
Window functions perform calculations across a set of table rows related to the current row.
Types of Window Functions
ROW_NUMBER
RANK
DENSE_RANK
LEAD and LAG
4. SQL Ranking
Understanding SQL Ranking Functions
SQL Ranking functions assign a rank to each row within a partition of a result set.
Examples of Ranking Functions
--Example: Rank employees by salary
SELECT employee_id, first_name, last_name, salary,
RANK() OVER (ORDER BY salary DESC) AS salary_rank
FROM employees;
5. UNION Operator
Introduction to UNION and UNION ALL
The UNION operator is used to combine the result sets of two or more SELECT statements. It removes duplicates by default, while UNION ALL retains duplicates.
Example of using UNION
-- Example: Combine results from two queries
SELECT product_id, product, category
FROM products
UNION
SELECT product_id, product, category
FROM archived_products;
Conclusion
These advanced SQL techniques provide powerful tools for data analysis and manipulation. By incorporating CTEs, Subqueries, Window Functions, SQL Ranking, and UNION into your SQL toolbox, you can handle complex queries and gain deeper insights from your databases.