Oracle Database SQL Certified Associate
1 Introduction to SQL
1-1 Overview of SQL
1-2 History of SQL
1-3 SQL Standards
2 SQL Data Types
2-1 Numeric Data Types
2-2 Character Data Types
2-3 Date and Time Data Types
2-4 Large Object (LOB) Data Types
2-5 Miscellaneous Data Types
3 Creating and Managing Tables
3-1 Creating Tables
3-2 Modifying Tables
3-3 Dropping Tables
3-4 Table Constraints
3-5 Temporary Tables
4 Data Manipulation Language (DML)
4-1 Inserting Data
4-2 Updating Data
4-3 Deleting Data
4-4 Selecting Data
4-5 Using Subqueries
5 Data Control Language (DCL)
5-1 Granting Privileges
5-2 Revoking Privileges
6 Data Definition Language (DDL)
6-1 Creating Tables
6-2 Altering Tables
6-3 Dropping Tables
6-4 Creating Indexes
6-5 Dropping Indexes
6-6 Creating Views
6-7 Dropping Views
7 SQL Functions
7-1 Single-Row Functions
7-2 Aggregate Functions
7-3 Group Functions
7-4 Analytical Functions
8 Joins and Subqueries
8-1 Inner Joins
8-2 Outer Joins
8-3 Self-Joins
8-4 Cross Joins
8-5 Subqueries
9 Set Operators
9-1 UNION
9-2 UNION ALL
9-3 INTERSECT
9-4 MINUS
10 Grouping and Aggregation
10-1 GROUP BY Clause
10-2 HAVING Clause
10-3 ROLLUP and CUBE
10-4 GROUPING SETS
11 Transactions and Concurrency
11-1 Transaction Control Statements
11-2 Locking and Concurrency
11-3 Isolation Levels
12 Oracle SQL Developer
12-1 Overview of Oracle SQL Developer
12-2 Using SQL Worksheet
12-3 Managing Connections
12-4 Running Scripts
13 Advanced SQL Topics
13-1 Recursive Queries
13-2 Model Clause
13-3 PIVOT and UNPIVOT
13-4 Flashback Query
14 Performance Tuning
14-1 Query Optimization
14-2 Indexing Strategies
14-3 Analyzing Query Performance
15 Security and Auditing
15-1 User Management
15-2 Role Management
15-3 Auditing SQL Statements
16 Backup and Recovery
16-1 Backup Strategies
16-2 Recovery Strategies
16-3 Using RMAN
17 Oracle Database Architecture
17-1 Overview of Oracle Database Architecture
17-2 Memory Structures
17-3 Process Structures
17-4 Storage Structures
18 PLSQL Basics
18-1 Introduction to PLSQL
18-2 PLSQL Block Structure
18-3 Variables and Data Types
18-4 Control Structures
18-5 Exception Handling
19 Oracle SQL Certification Exam Preparation
19-1 Exam Objectives
19-2 Sample Questions
19-3 Practice Tests
19-4 Exam Tips
10 Grouping and Aggregation in Oracle SQL

10 Grouping and Aggregation in Oracle SQL

Key Concepts

Grouping and aggregation in Oracle SQL are essential for summarizing and analyzing data. Understanding the following key concepts is crucial for effectively using these techniques:

1. GROUP BY Clause

The GROUP BY clause is used to group rows that have the same values in specified columns into summary rows. This is often used with aggregate functions to perform calculations on each group.

Example: Grouping sales data by region:

SELECT Region, SUM(SalesAmount) AS TotalSales FROM Sales GROUP BY Region;

2. Aggregate Functions

Aggregate functions perform a calculation on a set of values and return a single value. Common aggregate functions include SUM, AVG, COUNT, MAX, and MIN.

Example: Calculating the average salary of employees:

SELECT AVG(Salary) AS AverageSalary FROM Employees;

3. HAVING Clause

The HAVING clause is used to filter groups based on the result of an aggregate function. It is often used in conjunction with the GROUP BY clause.

Example: Filtering regions with total sales greater than $1,000,000:

SELECT Region, SUM(SalesAmount) AS TotalSales FROM Sales GROUP BY Region HAVING SUM(SalesAmount) > 1000000;

4. ROLLUP

The ROLLUP extension to the GROUP BY clause creates subtotals and a grand total for hierarchical levels of analysis.

Example: Creating subtotals and a grand total for sales by region and product:

SELECT Region, Product, SUM(SalesAmount) AS TotalSales FROM Sales GROUP BY ROLLUP(Region, Product);

5. CUBE

The CUBE extension to the GROUP BY clause creates subtotals for all possible combinations of the specified columns.

Example: Creating subtotals for all combinations of region and product:

SELECT Region, Product, SUM(SalesAmount) AS TotalSales FROM Sales GROUP BY CUBE(Region, Product);

6. GROUPING SETS

The GROUPING SETS clause allows you to specify multiple grouping combinations in a single query.

Example: Grouping sales data by region and product, and also by region alone:

SELECT Region, Product, SUM(SalesAmount) AS TotalSales FROM Sales GROUP BY GROUPING SETS((Region, Product), (Region));

7. GROUPING Function

The GROUPING function is used to identify whether a column is included in the current grouping set. It returns 1 if the column is not included, and 0 if it is.

Example: Identifying rows that are subtotals:

SELECT Region, Product, SUM(SalesAmount) AS TotalSales, GROUPING(Region) AS IsRegionGrouped FROM Sales GROUP BY ROLLUP(Region, Product);

8. GROUP_ID Function

The GROUP_ID function is used to identify duplicate groups in a query. It returns a unique number for each group.

Example: Identifying duplicate groups in a query:

SELECT Region, Product, SUM(SalesAmount) AS TotalSales, GROUP_ID() AS GroupID FROM Sales GROUP BY GROUPING SETS((Region, Product), (Region, Product));

9. Analytical Functions

Analytical functions perform calculations across a set of table rows that are somehow related to the current row. They are similar to aggregate functions but do not group rows into a single output row.

Example: Calculating the running total of sales:

SELECT OrderDate, SalesAmount, SUM(SalesAmount) OVER (ORDER BY OrderDate) AS RunningTotal FROM Sales;

10. PIVOT and UNPIVOT

The PIVOT operator is used to transform rows into columns, and the UNPIVOT operator is used to transform columns into rows.

Example: Pivoting sales data by product:

SELECT * FROM (SELECT Region, Product, SalesAmount FROM Sales) PIVOT (SUM(SalesAmount) FOR Product IN ('ProductA' AS ProductA, 'ProductB' AS ProductB));