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
PIVOT and UNPIVOT in Oracle SQL

PIVOT and UNPIVOT in Oracle SQL

Key Concepts

PIVOT and UNPIVOT are powerful SQL operators in Oracle that allow you to transform data between rows and columns. Understanding these concepts is essential for manipulating and analyzing data effectively.

1. PIVOT

The PIVOT operator transforms rows into columns. It is particularly useful when you have a table where you want to display aggregated data across different categories as separate columns.

Example:

Consider a table named Sales with columns Year, Quarter, and Amount. Using PIVOT, you can transform the data to display each quarter's sales as separate columns:

SELECT * FROM ( SELECT Year, Quarter, Amount FROM Sales ) PIVOT ( SUM(Amount) FOR Quarter IN ('Q1', 'Q2', 'Q3', 'Q4') );

2. UNPIVOT

The UNPIVOT operator transforms columns into rows. It is useful when you have a table where you want to convert columnar data into a more normalized format.

Example:

Consider a table named SalesSummary with columns Year, Q1, Q2, Q3, and Q4. Using UNPIVOT, you can transform the data to display each quarter's sales as rows:

SELECT Year, Quarter, Amount FROM SalesSummary UNPIVOT ( Amount FOR Quarter IN (Q1, Q2, Q3, Q4) );

Detailed Explanation

1. PIVOT

The PIVOT operator works by aggregating data and then rotating the rows into columns. It requires a source query, an aggregation function, and a list of pivot columns.

Example:

Suppose you have a table Sales with the following data:

Year | Quarter | Amount -----+---------+-------- 2021 | Q1 | 1000-2021 | Q2 | 1500-2021 | Q3 | 2000-2021 | Q4 | 2500

Using PIVOT, you can transform this into:

Year | Q1 | Q2 | Q3 | Q4 -----+-----+-----+-----+----- 2021 | 1000| 1500| 2000| 2500

2. UNPIVOT

The UNPIVOT operator works by converting columns into rows. It requires a source query, a new column to hold the column names, and a new column to hold the values.

Example:

Suppose you have a table SalesSummary with the following data:

Year | Q1 | Q2 | Q3 | Q4 -----+-----+-----+-----+----- 2021 | 1000| 1500| 2000| 2500

Using UNPIVOT, you can transform this into:

Year | Quarter | Amount -----+---------+-------- 2021 | Q1 | 1000-2021 | Q2 | 1500-2021 | Q3 | 2000-2021 | Q4 | 2500

Examples and Analogies

Example 1: PIVOT

Imagine you have a list of sales figures for each quarter. Using PIVOT, you can transform this list into a summary table where each quarter's sales are displayed as separate columns.

Example 2: UNPIVOT

Consider a summary table where sales figures for each quarter are stored in separate columns. Using UNPIVOT, you can convert this summary table back into a list format, making it easier to analyze and manipulate.

Example 3: PIVOT and UNPIVOT Together

You can use PIVOT to summarize data and then use UNPIVOT to revert it back to its original format if needed. This flexibility allows you to manipulate data in various ways to suit your analysis needs.