SlideShare a Scribd company logo
SQL OLAP
ON LINE ANALYTICAL PROCESSING
THINK: BUILDING AND DELIVERING INFORMATION VIA SQL
SQL OLAP FUNCTIONS
• RANK : MEMBERI RANKING PADA SETIAP BARIS BERDASARKAN URUTAN
TERTENTU
• DENSE_RANK: MEMBERI RANKING PADA PARTISI TERTENTU (DENSE:
RINGKAS, PADAT)
• ROW_NUMBER: MEMBERI NOMOR BARIS BERDASARKAN SATU ATAU LEBIH
KOLOM
• ROLLUP
• CUBE
• GROUPING SETS
• GROUPING
DATABASE FUNDAMENTALS > SQL >
LANGUAGE ELEMENTS > EXPRESSIONS >
OLAP SPECIFICATION
• ON-LINE ANALYTICAL PROCESSING (OLAP) FUNCTIONS PROVIDE THE ABILITY
TO:
• RETURN RANKING {RANK, DENSE_RANK}
• ROW NUMBERING {ROW_NUMBER}
• EXISTING AGGREGATE FUNCTION INFORMATION
AS A SCALAR VALUE IN A QUERY RESULT.
TABEL EMPLOYEE
RANK()
SELECT EMPNO, LASTNAME, FIRSTNME, SALARY+BONUS AS TOTAL_SALARY,
RANK() OVER (ORDER BY SALARY+BONUS DESC) AS RANK_SALARY
FROM EMPLOYEE WHERE SALARY+BONUS > 50000
ORDER BY LASTNAME;
PRIORITAS PERTAMA DIURUTKAN BY LASTNAME
DEFAULT PENGURUTAN ADALAH ASCENDING.
DESC  BOTTOM UP  DARI Z KE A, DARI BESAR KE KECIL
ASC  TOP-DOWN  DARI A KE Z, DARI KECIL KE BESAR
SELECT EMPNO, LASTNAME, FIRSTNME, SALARY+BONUS AS TOTAL_SALARY,
RANK() OVER (ORDER BY SALARY+BONUS DESC) AS RANK_SALARY
FROM EMPLOYEE WHERE SALARY+BONUS > 50000;
PRIORITAS PERTAMA DIURUTKAN BERDASARKAN RANK_SALARY
DESC  DARI BESAR KE KECIL.
SELECT EMPNO, LASTNAME, FIRSTNME, SALARY+BONUS AS TOTAL_SALARY,
RANK() OVER (ORDER BY SALARY+BONUS DESC) AS RANK_SALARY
FROM EMPLOYEE WHERE SALARY+BONUS > 50000
ORDER BY SALARY+BONUS DESC;
SELECT EMPNO, LASTNAME, FIRSTNME, SALARY+BONUS AS
TOTAL_SALARY,
RANK() OVER (ORDER BY SALARY+BONUS DESC) AS
RANK_SALARY
FROM EMPLOYEE WHERE SALARY+BONUS > 50000
SELECT EMPNO, LASTNAME, FIRSTNME, SALARY+BONUS AS TOTAL_SALARY,
RANK() OVER (ORDER BY SALARY+BONUS DESC) AS RANK_SALARY
FROM EMPLOYEE JOIN DEPARTEMENT ON EMPLOYEE. WORKDEPT =
DEPARTEMENT.DEPTNO
WHERE SALARY+BONUS > 50000
ORDER BY RANK_SALARY;
SELECT EMPNO, LASTNAME, FIRSTNME, SALARY+BONUS AS TOTAL_SALARY,
RANK() OVER (ORDER BY SALARY+BONUS DESC) AS RANK_SALARY
FROM EMPLOYEE WHERE SALARY+BONUS > 50000
ORDER BY RANK() OVER (ORDER BY SALARY+BONUS DESC) ;
SELECT EMPNO, LASTNAME, FIRSTNME, SALARY+BONUS AS TOTAL_SALARY,
RANK() OVER (ORDER BY LASTNAME) AS RANK_LASTNAME
FROM EMPLOYEE WHERE SALARY+BONUS > 50000
ORDER BY RANK_LASTNAME;
 BY DEFAULT ASCENDING (ASC: DARI A KE Z)
PRIORITAS PERTAMA DIURUTKAN BERDASARKAN LASTNAME MENGGUNAKAN
FUNGSI RANK().
Query untuk mencari rangking dari rata-rata total_salary (salary ditambah bonus) per
departemen.
Tampilkan kolom workdept, rata-rata total_salary, dan rankingnya.
SELECT WORKDEPT, AVG(SALARY+BONUS) AS AVG_TOTAL_SALARY,
RANK() OVER (ORDER BY AVG(SALARY+BONUS) DESC) AS RANK_AVG_SAL
FROM EMPLOYEE
GROUP BY WORKDEPT
ORDER BY RANK_AVG_SAL;
DENSE_RANK
MEMBERI RANKING SECARA PARSIAL .
MEMBERI RANKING PADA KELOMPOK DATA TERTENTU.
Beri ranking pada setiap kelompok departement (WORKDEPT) berdasarkan EDLEVEL tertinggi.
Urutkan berdasarkan WORKDEPT.
SELECT EMPNO, LASTNAME, WORKDEPT, EDLEVEL,
DENSE_RANK() OVER (PARTITION BY WORKDEPT ORDER BY EDLEVEL DESC) AS
RANK_EDLEVEL
FROM EMPLOYEE
ORDER BY WORKDEPT;
Beri ranking pada setiap kelompok departement (WORKDEPT) berdasarkan EDLEVEL tertinggi.
Urutkan berdasarkan LASTNAME.
SELECT EMPNO, LASTNAME, WORKDEPT, EDLEVEL,
DENSE_RANK() OVER (PARTITION BY WORKDEPT ORDER BY EDLEVEL DESC) AS
RANK_EDLEVEL
FROM EMPLOYEE
ORDER BY LASTNAME;
Beri ranking pada setiap kelompok departement (WORKDEPT) berdasarkan EDLEVEL tertinggi.
Urutkan berdasarkan WORKDEPT dan LASTNAME.
SELECT EMPNO, LASTNAME, WORKDEPT, EDLEVEL,
DENSE_RANK() OVER (PARTITION BY WORKDEPT ORDER BY EDLEVEL DESC) AS
RANK_EDLEVEL
FROM EMPLOYEE
ORDER BY WORKDEPT, LASTNAME;
CONTOH:
Mencari 5 ranking total salary (salary+bonus) tertinggi.
SELECT EMPNO, LASTNAME, FIRSTNME, TOTAL_SALARY, RANK_SALARY
FROM
(SELECT EMPNO, LASTNAME, FIRSTNME, SALARY+BONUS AS
TOTAL_SALARY,
RANK() OVER (ORDER BY SALARY+BONUS DESC) AS RANK_SALARY
FROM EMPLOYEE) AS RANKED_EMPLOYEE
WHERE RANK_SALARY < 6
ORDER BY RANK_SALARY;
SELECT EMPNO, LASTNAME, FIRSTNME, SALARY+BONUS AS TOTAL_SALARY,
RANK() OVER (ORDER BY SALARY+BONUS DESC) AS RANK_SALARY
FROM EMPLOYEE
WHERE (SALARY + BONUS) > 90000;
SELECT EMPNO, LASTNAME, FIRSTNME, SALARY+BONUS AS TOTAL_SALARY,
RANK() OVER (ORDER BY SALARY+BONUS DESC) AS RANK_SALARY
FROM EMPLOYEE
WHERE TOTAL_SALARY > 90000;
SELECT EMPNO, LASTNAME, FIRSTNME, SALARY+BONUS AS TOTAL_SALARY,
RANK() OVER (ORDER BY SALARY+BONUS DESC) AS RANK_SALARY
FROM EMPLOYEE
WHERE RANK_SALARY > 6;
"TOTAL_SALARY
" is not valid in
the context where
it is used..
SQLCODE=-206,
SQLSTATE=42703
, DRIVER=4.18.60
LEAD()
FIRST_VALUE()
SELECT EMPNO, WORKDEPT, JOB, SALARY,
LEAD(SALARY, 0) OVER (PARTITION BY WORKDEPT ORDER BY SALARY) AS
L_SALARY
FROM EMPLOYEE
ORDER BY WORKDEPT, SALARY;
SELECT EMPNO, WORKDEPT, JOB, SALARY,
LEAD(SALARY, 1) OVER (PARTITION BY WORKDEPT ORDER BY SALARY) AS
L_SALARY
FROM EMPLOYEE
ORDER BY WORKDEPT, SALARY;
SELECT EMPNO, WORKDEPT, JOB, SALARY,
LEAD(SALARY, 2) OVER (PARTITION BY WORKDEPT ORDER BY SALARY) AS
L_SALARY
FROM EMPLOYEE
LEAD(SALARY, 0
LEAD(SALARY, 1
SELECT EMPNO, WORKDEPT, LASTNAME, FIRSTNME, JOB, SALARY,
LEAD(SALARY, 1) OVER
(PARTITION BY WORKDEPT ORDER BY SALARY) - SALARY AS
DELTA_SALARY
FROM EMPLOYEE
ORDER BY WORKDEPT, SALARY;
SELECT EMPNO, WORKDEPT, JOB, SALARY,
FIRST_VALUE(SALARY) OVER (PARTITION BY WORKDEPT ORDER BY SALARY) AS
L_SALARY
FROM EMPLOYEE
ORDER BY WORKDEPT, SALARY;
SELECT JOB, HIREDATE, EMPNO, LASTNAME, FIRSTNME, SALARY,
FIRST_VALUE(SALARY) OVER (PARTITION BY JOB ORDER BY HIREDATE) AS
FIRST_SALARY,
SALARY - FIRST_VALUE(SALARY) OVER (PARTITION BY JOB ORDER BY HIREDATE) AS
DELTA_SALARY
FROM EMPLOYEE
ORDER BY JOB, HIREDATE;
ROW_NUMBER
Memberi nomor pada setiap baris berdasarkan urutan ascending WORKDEPT dan
LASTNAME.
SELECT ROW_NUMBER() OVER (ORDER BY WORKDEPT, LASTNAME) AS NUMBER,
LASTNAME, WORKDEPT, SALARY
FROM EMPLOYEE
ORDER BY WORKDEPT, LASTNAME;
ROLLUP()
CUBE()
• WILL RESULT IN THE DATA BEING SUMMARIZED AT THE CERTAIN LEVELS.
CONTOH ROLLUP
Menjumlahkan Penjualan Pada Tabel Trans
Berdasarkan Country Dan Region
CONTOH CUBE
Menjumlahkan Penjualan Pada Tabel Trans
Berdasarkan Country Dan Region
WHAT’S THE DIFFERENT ?
SELECT WORKDEPT, JOB, SUM(SALARY)
FROM EMPLOYEE
GROUP BY ROLLUP (WORKDEPT,JOB)
ORDER BY WORKDEPT;
SELECT WORKDEPT, JOB, SUM(SALARY)
FROM EMPLOYEE
GROUP BY (WORKDEPT,JOB)
ORDER BY WORKDEPT;
SELECT WORKDEPT, JOB, SUM(SALARY)
FROM EMPLOYEE
GROUP BY CUBE (WORKDEPT,JOB)
ORDER BY WORKDEPT;
SELECT WORKDEPT, JOB, SUM(SALARY)
FROM EMPLOYEE
GROUP BY GROUPING SETS (WORKDEPT, JOB)
ORDER BY WORKDEPT;
WHAT’S THE DIFFERENT ?
SELECT WORKDEPT, JOB, SUM(SALARY)
FROM EMPLOYEE
GROUP BY ROLLUP(WORKDEPT,JOB)
ORDER BY WORKDEPT;
WHAT’S THE DIFFERENT ?
SELECT WORKDEPT, JOB, SUM(SALARY)
FROM EMPLOYEE
GROUP BY (WORKDEPT, JOB)
ORDER BY WORKDEPT;
WHAT’S THE DIFFERENT ?
SELECT WORKDEPT, JOB, SUM(SALARY)
FROM EMPLOYEE
GROUP BY CUBE(WORKDEPT, JOB)
ORDER BY WORKDEPT;
WHAT’S THE DIFFERENT ?
SELECT WORKDEPT, JOB, SUM(SALARY)
FROM EMPLOYEE
GROUP BY GROUPING SETS(WORKDEPT, JOB)
ORDER BY WORKDEPT;
GROUPING SETS
GROUPING SETS()
MULTIPLICATIVE VS. ADDITIVE
• MULTIPLICATIVE : Perkalian
• ADDITIVE : Penjumlahan
GROUPING SET INDEX
• PADA TABEL FAKTA DAPAT DIBERI INDEX UNTUK MENGOPTIMALKAN EKSEKUSI
QUERY OLAP GROUPING SET.
CONTOH PERBEDAAN ROLLUP DAN CUBE
• SELECT * FROM SALES; --41 RECORD
• SELECT REGION, SALES_DATE, SUM(SALES) AS HASIL_PENJUALAN
• FROM SALES
• GROUP BY REGION, SALES_DATE;
• SELECT REGION, SALES_DATE, SUM(SALES) AS HASIL_PENJUALAN
• FROM SALES
• GROUP BY ROLLUP(REGION,SALES_DATE);
• SELECT REGION, SALES_DATE, SUM(SALES) AS HASIL_PENJUALAN
• FROM SALES
• GROUP BY ROLLUP(SALES_DATE,REGION);
• SELECT REGION, SALES_DATE, SUM(SALES) AS HASIL_PENJUALAN
• FROM SALES
• GROUP BY CUBE(REGION,SALES_DATE);
TERIMAKASIH

More Related Content

Similar to 08_SQL OLAP DBMS DB2 GROUP BY CUBE ROLL UP .pptx

12. Basic SQL Queries (2).pptx
12. Basic SQL Queries  (2).pptx12. Basic SQL Queries  (2).pptx
12. Basic SQL Queries (2).pptx
SabrinaShanta2
 
Database Query Using SQL_ip.docx
Database Query Using SQL_ip.docxDatabase Query Using SQL_ip.docx
Database Query Using SQL_ip.docx
VandanaGoyal21
 
SQL-AGG-FUN.pdfiiiijuyyttfffgyyuyyyyyhhh
SQL-AGG-FUN.pdfiiiijuyyttfffgyyuyyyyyhhhSQL-AGG-FUN.pdfiiiijuyyttfffgyyuyyyyyhhh
SQL-AGG-FUN.pdfiiiijuyyttfffgyyuyyyyyhhh
NaveeN547338
 
Les03 (Using Single Row Functions To Customize Output)
Les03 (Using Single Row Functions To Customize Output)Les03 (Using Single Row Functions To Customize Output)
Les03 (Using Single Row Functions To Customize Output)
Achmad Solichin
 
Dynamic websites lec2
Dynamic websites lec2Dynamic websites lec2
Dynamic websites lec2Belal Arfa
 
Les03
Les03Les03
James Colby Maddox Business Intellignece and Computer Science Portfolio
James Colby Maddox Business Intellignece and Computer Science PortfolioJames Colby Maddox Business Intellignece and Computer Science Portfolio
James Colby Maddox Business Intellignece and Computer Science Portfolio
colbydaman
 
Business Intelligence Portfolio
Business Intelligence PortfolioBusiness Intelligence Portfolio
Business Intelligence PortfolioChris Seebacher
 
BIS05 Introduction to SQL
BIS05 Introduction to SQLBIS05 Introduction to SQL
BIS05 Introduction to SQL
Prithwis Mukerjee
 
Comparing 30 Elastic Search operations with Oracle SQL statements
Comparing 30 Elastic Search operations with Oracle SQL statementsComparing 30 Elastic Search operations with Oracle SQL statements
Comparing 30 Elastic Search operations with Oracle SQL statements
Lucas Jellema
 
Basic Sql Handouts
Basic Sql HandoutsBasic Sql Handouts
Basic Sql Handoutsjhe04
 
Sql task answers
Sql task answersSql task answers
Sql task answers
Nawaz Sk
 
Data Exploration with Apache Drill: Day 2
Data Exploration with Apache Drill: Day 2Data Exploration with Apache Drill: Day 2
Data Exploration with Apache Drill: Day 2
Charles Givre
 
Pl sql guide
Pl sql guidePl sql guide
Pl sql guide
Vinay Kumar
 
Oracle - Program with PL/SQL - Lession 07
Oracle - Program with PL/SQL - Lession 07Oracle - Program with PL/SQL - Lession 07
Oracle - Program with PL/SQL - Lession 07
Thuan Nguyen
 
Extreme querying with_analytics
Extreme querying with_analyticsExtreme querying with_analytics
Extreme querying with_analytics
Gary Myers
 
Group by clause mod
Group by clause modGroup by clause mod
Group by clause mod
Nitesh Singh
 
Introduction to oracle functions
Introduction to oracle functionsIntroduction to oracle functions
Introduction to oracle functions
Nitesh Singh
 

Similar to 08_SQL OLAP DBMS DB2 GROUP BY CUBE ROLL UP .pptx (20)

12. Basic SQL Queries (2).pptx
12. Basic SQL Queries  (2).pptx12. Basic SQL Queries  (2).pptx
12. Basic SQL Queries (2).pptx
 
Database Query Using SQL_ip.docx
Database Query Using SQL_ip.docxDatabase Query Using SQL_ip.docx
Database Query Using SQL_ip.docx
 
SQL-AGG-FUN.pdfiiiijuyyttfffgyyuyyyyyhhh
SQL-AGG-FUN.pdfiiiijuyyttfffgyyuyyyyyhhhSQL-AGG-FUN.pdfiiiijuyyttfffgyyuyyyyyhhh
SQL-AGG-FUN.pdfiiiijuyyttfffgyyuyyyyyhhh
 
Les03 (Using Single Row Functions To Customize Output)
Les03 (Using Single Row Functions To Customize Output)Les03 (Using Single Row Functions To Customize Output)
Les03 (Using Single Row Functions To Customize Output)
 
Dynamic websites lec2
Dynamic websites lec2Dynamic websites lec2
Dynamic websites lec2
 
Les03
Les03Les03
Les03
 
James Colby Maddox Business Intellignece and Computer Science Portfolio
James Colby Maddox Business Intellignece and Computer Science PortfolioJames Colby Maddox Business Intellignece and Computer Science Portfolio
James Colby Maddox Business Intellignece and Computer Science Portfolio
 
Business Intelligence Portfolio
Business Intelligence PortfolioBusiness Intelligence Portfolio
Business Intelligence Portfolio
 
BIS05 Introduction to SQL
BIS05 Introduction to SQLBIS05 Introduction to SQL
BIS05 Introduction to SQL
 
Comparing 30 Elastic Search operations with Oracle SQL statements
Comparing 30 Elastic Search operations with Oracle SQL statementsComparing 30 Elastic Search operations with Oracle SQL statements
Comparing 30 Elastic Search operations with Oracle SQL statements
 
Basic Sql Handouts
Basic Sql HandoutsBasic Sql Handouts
Basic Sql Handouts
 
Sql task answers
Sql task answersSql task answers
Sql task answers
 
Data Exploration with Apache Drill: Day 2
Data Exploration with Apache Drill: Day 2Data Exploration with Apache Drill: Day 2
Data Exploration with Apache Drill: Day 2
 
Les03
Les03Les03
Les03
 
Pl sql guide
Pl sql guidePl sql guide
Pl sql guide
 
Oracle - Program with PL/SQL - Lession 07
Oracle - Program with PL/SQL - Lession 07Oracle - Program with PL/SQL - Lession 07
Oracle - Program with PL/SQL - Lession 07
 
Introduction to Oracle Functions--(SQL)--Abhishek Sharma
Introduction to Oracle Functions--(SQL)--Abhishek SharmaIntroduction to Oracle Functions--(SQL)--Abhishek Sharma
Introduction to Oracle Functions--(SQL)--Abhishek Sharma
 
Extreme querying with_analytics
Extreme querying with_analyticsExtreme querying with_analytics
Extreme querying with_analytics
 
Group by clause mod
Group by clause modGroup by clause mod
Group by clause mod
 
Introduction to oracle functions
Introduction to oracle functionsIntroduction to oracle functions
Introduction to oracle functions
 

Recently uploaded

Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Strategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptxStrategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptx
varshanayak241
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
XfilesPro
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
MayankTawar1
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaTop 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Yara Milbes
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
Peter Caitens
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2
 

Recently uploaded (20)

Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Strategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptxStrategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptx
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaTop 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 

08_SQL OLAP DBMS DB2 GROUP BY CUBE ROLL UP .pptx

  • 1. SQL OLAP ON LINE ANALYTICAL PROCESSING THINK: BUILDING AND DELIVERING INFORMATION VIA SQL
  • 2. SQL OLAP FUNCTIONS • RANK : MEMBERI RANKING PADA SETIAP BARIS BERDASARKAN URUTAN TERTENTU • DENSE_RANK: MEMBERI RANKING PADA PARTISI TERTENTU (DENSE: RINGKAS, PADAT) • ROW_NUMBER: MEMBERI NOMOR BARIS BERDASARKAN SATU ATAU LEBIH KOLOM • ROLLUP • CUBE • GROUPING SETS • GROUPING
  • 3. DATABASE FUNDAMENTALS > SQL > LANGUAGE ELEMENTS > EXPRESSIONS > OLAP SPECIFICATION • ON-LINE ANALYTICAL PROCESSING (OLAP) FUNCTIONS PROVIDE THE ABILITY TO: • RETURN RANKING {RANK, DENSE_RANK} • ROW NUMBERING {ROW_NUMBER} • EXISTING AGGREGATE FUNCTION INFORMATION AS A SCALAR VALUE IN A QUERY RESULT.
  • 6. SELECT EMPNO, LASTNAME, FIRSTNME, SALARY+BONUS AS TOTAL_SALARY, RANK() OVER (ORDER BY SALARY+BONUS DESC) AS RANK_SALARY FROM EMPLOYEE WHERE SALARY+BONUS > 50000 ORDER BY LASTNAME; PRIORITAS PERTAMA DIURUTKAN BY LASTNAME DEFAULT PENGURUTAN ADALAH ASCENDING. DESC  BOTTOM UP  DARI Z KE A, DARI BESAR KE KECIL ASC  TOP-DOWN  DARI A KE Z, DARI KECIL KE BESAR
  • 7. SELECT EMPNO, LASTNAME, FIRSTNME, SALARY+BONUS AS TOTAL_SALARY, RANK() OVER (ORDER BY SALARY+BONUS DESC) AS RANK_SALARY FROM EMPLOYEE WHERE SALARY+BONUS > 50000; PRIORITAS PERTAMA DIURUTKAN BERDASARKAN RANK_SALARY DESC  DARI BESAR KE KECIL. SELECT EMPNO, LASTNAME, FIRSTNME, SALARY+BONUS AS TOTAL_SALARY, RANK() OVER (ORDER BY SALARY+BONUS DESC) AS RANK_SALARY FROM EMPLOYEE WHERE SALARY+BONUS > 50000 ORDER BY SALARY+BONUS DESC; SELECT EMPNO, LASTNAME, FIRSTNME, SALARY+BONUS AS TOTAL_SALARY, RANK() OVER (ORDER BY SALARY+BONUS DESC) AS RANK_SALARY FROM EMPLOYEE WHERE SALARY+BONUS > 50000
  • 8. SELECT EMPNO, LASTNAME, FIRSTNME, SALARY+BONUS AS TOTAL_SALARY, RANK() OVER (ORDER BY SALARY+BONUS DESC) AS RANK_SALARY FROM EMPLOYEE JOIN DEPARTEMENT ON EMPLOYEE. WORKDEPT = DEPARTEMENT.DEPTNO WHERE SALARY+BONUS > 50000 ORDER BY RANK_SALARY; SELECT EMPNO, LASTNAME, FIRSTNME, SALARY+BONUS AS TOTAL_SALARY, RANK() OVER (ORDER BY SALARY+BONUS DESC) AS RANK_SALARY FROM EMPLOYEE WHERE SALARY+BONUS > 50000 ORDER BY RANK() OVER (ORDER BY SALARY+BONUS DESC) ;
  • 9. SELECT EMPNO, LASTNAME, FIRSTNME, SALARY+BONUS AS TOTAL_SALARY, RANK() OVER (ORDER BY LASTNAME) AS RANK_LASTNAME FROM EMPLOYEE WHERE SALARY+BONUS > 50000 ORDER BY RANK_LASTNAME;  BY DEFAULT ASCENDING (ASC: DARI A KE Z) PRIORITAS PERTAMA DIURUTKAN BERDASARKAN LASTNAME MENGGUNAKAN FUNGSI RANK().
  • 10. Query untuk mencari rangking dari rata-rata total_salary (salary ditambah bonus) per departemen. Tampilkan kolom workdept, rata-rata total_salary, dan rankingnya. SELECT WORKDEPT, AVG(SALARY+BONUS) AS AVG_TOTAL_SALARY, RANK() OVER (ORDER BY AVG(SALARY+BONUS) DESC) AS RANK_AVG_SAL FROM EMPLOYEE GROUP BY WORKDEPT ORDER BY RANK_AVG_SAL;
  • 11. DENSE_RANK MEMBERI RANKING SECARA PARSIAL . MEMBERI RANKING PADA KELOMPOK DATA TERTENTU.
  • 12. Beri ranking pada setiap kelompok departement (WORKDEPT) berdasarkan EDLEVEL tertinggi. Urutkan berdasarkan WORKDEPT. SELECT EMPNO, LASTNAME, WORKDEPT, EDLEVEL, DENSE_RANK() OVER (PARTITION BY WORKDEPT ORDER BY EDLEVEL DESC) AS RANK_EDLEVEL FROM EMPLOYEE ORDER BY WORKDEPT;
  • 13. Beri ranking pada setiap kelompok departement (WORKDEPT) berdasarkan EDLEVEL tertinggi. Urutkan berdasarkan LASTNAME. SELECT EMPNO, LASTNAME, WORKDEPT, EDLEVEL, DENSE_RANK() OVER (PARTITION BY WORKDEPT ORDER BY EDLEVEL DESC) AS RANK_EDLEVEL FROM EMPLOYEE ORDER BY LASTNAME;
  • 14. Beri ranking pada setiap kelompok departement (WORKDEPT) berdasarkan EDLEVEL tertinggi. Urutkan berdasarkan WORKDEPT dan LASTNAME. SELECT EMPNO, LASTNAME, WORKDEPT, EDLEVEL, DENSE_RANK() OVER (PARTITION BY WORKDEPT ORDER BY EDLEVEL DESC) AS RANK_EDLEVEL FROM EMPLOYEE ORDER BY WORKDEPT, LASTNAME;
  • 15. CONTOH: Mencari 5 ranking total salary (salary+bonus) tertinggi. SELECT EMPNO, LASTNAME, FIRSTNME, TOTAL_SALARY, RANK_SALARY FROM (SELECT EMPNO, LASTNAME, FIRSTNME, SALARY+BONUS AS TOTAL_SALARY, RANK() OVER (ORDER BY SALARY+BONUS DESC) AS RANK_SALARY FROM EMPLOYEE) AS RANKED_EMPLOYEE WHERE RANK_SALARY < 6 ORDER BY RANK_SALARY;
  • 16. SELECT EMPNO, LASTNAME, FIRSTNME, SALARY+BONUS AS TOTAL_SALARY, RANK() OVER (ORDER BY SALARY+BONUS DESC) AS RANK_SALARY FROM EMPLOYEE WHERE (SALARY + BONUS) > 90000; SELECT EMPNO, LASTNAME, FIRSTNME, SALARY+BONUS AS TOTAL_SALARY, RANK() OVER (ORDER BY SALARY+BONUS DESC) AS RANK_SALARY FROM EMPLOYEE WHERE TOTAL_SALARY > 90000; SELECT EMPNO, LASTNAME, FIRSTNME, SALARY+BONUS AS TOTAL_SALARY, RANK() OVER (ORDER BY SALARY+BONUS DESC) AS RANK_SALARY FROM EMPLOYEE WHERE RANK_SALARY > 6; "TOTAL_SALARY " is not valid in the context where it is used.. SQLCODE=-206, SQLSTATE=42703 , DRIVER=4.18.60
  • 18. SELECT EMPNO, WORKDEPT, JOB, SALARY, LEAD(SALARY, 0) OVER (PARTITION BY WORKDEPT ORDER BY SALARY) AS L_SALARY FROM EMPLOYEE ORDER BY WORKDEPT, SALARY; SELECT EMPNO, WORKDEPT, JOB, SALARY, LEAD(SALARY, 1) OVER (PARTITION BY WORKDEPT ORDER BY SALARY) AS L_SALARY FROM EMPLOYEE ORDER BY WORKDEPT, SALARY; SELECT EMPNO, WORKDEPT, JOB, SALARY, LEAD(SALARY, 2) OVER (PARTITION BY WORKDEPT ORDER BY SALARY) AS L_SALARY FROM EMPLOYEE
  • 20. SELECT EMPNO, WORKDEPT, LASTNAME, FIRSTNME, JOB, SALARY, LEAD(SALARY, 1) OVER (PARTITION BY WORKDEPT ORDER BY SALARY) - SALARY AS DELTA_SALARY FROM EMPLOYEE ORDER BY WORKDEPT, SALARY;
  • 21. SELECT EMPNO, WORKDEPT, JOB, SALARY, FIRST_VALUE(SALARY) OVER (PARTITION BY WORKDEPT ORDER BY SALARY) AS L_SALARY FROM EMPLOYEE ORDER BY WORKDEPT, SALARY;
  • 22. SELECT JOB, HIREDATE, EMPNO, LASTNAME, FIRSTNME, SALARY, FIRST_VALUE(SALARY) OVER (PARTITION BY JOB ORDER BY HIREDATE) AS FIRST_SALARY, SALARY - FIRST_VALUE(SALARY) OVER (PARTITION BY JOB ORDER BY HIREDATE) AS DELTA_SALARY FROM EMPLOYEE ORDER BY JOB, HIREDATE;
  • 24. Memberi nomor pada setiap baris berdasarkan urutan ascending WORKDEPT dan LASTNAME. SELECT ROW_NUMBER() OVER (ORDER BY WORKDEPT, LASTNAME) AS NUMBER, LASTNAME, WORKDEPT, SALARY FROM EMPLOYEE ORDER BY WORKDEPT, LASTNAME;
  • 25. ROLLUP() CUBE() • WILL RESULT IN THE DATA BEING SUMMARIZED AT THE CERTAIN LEVELS.
  • 26. CONTOH ROLLUP Menjumlahkan Penjualan Pada Tabel Trans Berdasarkan Country Dan Region
  • 27. CONTOH CUBE Menjumlahkan Penjualan Pada Tabel Trans Berdasarkan Country Dan Region
  • 28. WHAT’S THE DIFFERENT ? SELECT WORKDEPT, JOB, SUM(SALARY) FROM EMPLOYEE GROUP BY ROLLUP (WORKDEPT,JOB) ORDER BY WORKDEPT; SELECT WORKDEPT, JOB, SUM(SALARY) FROM EMPLOYEE GROUP BY (WORKDEPT,JOB) ORDER BY WORKDEPT; SELECT WORKDEPT, JOB, SUM(SALARY) FROM EMPLOYEE GROUP BY CUBE (WORKDEPT,JOB) ORDER BY WORKDEPT; SELECT WORKDEPT, JOB, SUM(SALARY) FROM EMPLOYEE GROUP BY GROUPING SETS (WORKDEPT, JOB) ORDER BY WORKDEPT;
  • 29. WHAT’S THE DIFFERENT ? SELECT WORKDEPT, JOB, SUM(SALARY) FROM EMPLOYEE GROUP BY ROLLUP(WORKDEPT,JOB) ORDER BY WORKDEPT;
  • 30. WHAT’S THE DIFFERENT ? SELECT WORKDEPT, JOB, SUM(SALARY) FROM EMPLOYEE GROUP BY (WORKDEPT, JOB) ORDER BY WORKDEPT;
  • 31. WHAT’S THE DIFFERENT ? SELECT WORKDEPT, JOB, SUM(SALARY) FROM EMPLOYEE GROUP BY CUBE(WORKDEPT, JOB) ORDER BY WORKDEPT;
  • 32. WHAT’S THE DIFFERENT ? SELECT WORKDEPT, JOB, SUM(SALARY) FROM EMPLOYEE GROUP BY GROUPING SETS(WORKDEPT, JOB) ORDER BY WORKDEPT;
  • 35. MULTIPLICATIVE VS. ADDITIVE • MULTIPLICATIVE : Perkalian • ADDITIVE : Penjumlahan
  • 36.
  • 37. GROUPING SET INDEX • PADA TABEL FAKTA DAPAT DIBERI INDEX UNTUK MENGOPTIMALKAN EKSEKUSI QUERY OLAP GROUPING SET.
  • 39. • SELECT * FROM SALES; --41 RECORD • SELECT REGION, SALES_DATE, SUM(SALES) AS HASIL_PENJUALAN • FROM SALES • GROUP BY REGION, SALES_DATE; • SELECT REGION, SALES_DATE, SUM(SALES) AS HASIL_PENJUALAN • FROM SALES • GROUP BY ROLLUP(REGION,SALES_DATE); • SELECT REGION, SALES_DATE, SUM(SALES) AS HASIL_PENJUALAN • FROM SALES • GROUP BY ROLLUP(SALES_DATE,REGION); • SELECT REGION, SALES_DATE, SUM(SALES) AS HASIL_PENJUALAN • FROM SALES • GROUP BY CUBE(REGION,SALES_DATE);
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.

Editor's Notes

  1. Ketiga query tersebut memberikan return baris yang sama.
  2. WHERE …. > … HANYA BISA MENYELEKSI KOLOM PADA TABEL, BUKAN KOLOM ALIAS SEPERTI TOTAL_SALARY ATAU RANK_SALARY.
  3. KOLOM WORKDEPT MAUPUN JOB YANG BERISI NULL PADA GROUP BY BIASA TIDAK DIIKUTKAN DALAM PERHITUNGAN SUM(SALARY)