Submit Search
Upload
Lesson04 学会使用分组函数
•
0 likes
•
524 views
R
renguzi
Follow
Oracle OCP考试之007第4章,学会使用分组函数
Read less
Read more
Technology
Business
Economy & Finance
Report
Share
Report
Share
1 of 31
Download now
Download to read offline
Recommended
Les04
Les04
Akmal Rony
Lesson01 学会使用基本的SQL语句
Lesson01 学会使用基本的SQL语句
renguzi
Les01
Les01
Akmal Rony
Lesson06 使用子查询
Lesson06 使用子查询
renguzi
Lesson05 从多表中查询数据
Lesson05 从多表中查询数据
renguzi
Les02
Les02
Akmal Rony
Les06
Les06
Akmal Rony
Lesson02 学会使用WHERE、ORDER BY子句
Lesson02 学会使用WHERE、ORDER BY子句
renguzi
Recommended
Les04
Les04
Akmal Rony
Lesson01 学会使用基本的SQL语句
Lesson01 学会使用基本的SQL语句
renguzi
Les01
Les01
Akmal Rony
Lesson06 使用子查询
Lesson06 使用子查询
renguzi
Lesson05 从多表中查询数据
Lesson05 从多表中查询数据
renguzi
Les02
Les02
Akmal Rony
Les06
Les06
Akmal Rony
Lesson02 学会使用WHERE、ORDER BY子句
Lesson02 学会使用WHERE、ORDER BY子句
renguzi
Les08
Les08
Abrianto Nugraha
Les06
Les06
Abrianto Nugraha
Les07
Les07
Abrianto Nugraha
Les09
Les09
Abrianto Nugraha
plsql Les07
plsql Les07
sasa_eldoby
Les10
Les10
Abrianto Nugraha
Les11
Les11
Abrianto Nugraha
PL/SQL 3 DML
PL/SQL 3 DML
Richard Eliseo Mendoza Gafaro
Les02
Les02
Abrianto Nugraha
plsql Les09
plsql Les09
sasa_eldoby
Producing Readable Output with iSQL*Plus - Oracle Data Base
Producing Readable Output with iSQL*Plus - Oracle Data Base
Salman Memon
Les01
Les01
Abrianto Nugraha
PL/SQL CURSORES
PL/SQL CURSORES
Richard Eliseo Mendoza Gafaro
PL/SQL CONDICIONALES Y CICLOS
PL/SQL CONDICIONALES Y CICLOS
Richard Eliseo Mendoza Gafaro
Lesson09
Lesson09
renguzi
wee
wee
gapczar
Roshan Titus
Constructing the IMPL Flowsheet Using Dia with Python (IMPL-FlowsheetDiaPy)
Constructing the IMPL Flowsheet Using Dia with Python (IMPL-FlowsheetDiaPy)
Alkis Vazacopoulos
Lesson03 学会使用单行函数
Lesson03 学会使用单行函数
renguzi
plsql les03
plsql les03
sasa_eldoby
Lesson08
Lesson08
renguzi
Lesson07
Lesson07
renguzi
More Related Content
What's hot
Les08
Les08
Abrianto Nugraha
Les06
Les06
Abrianto Nugraha
Les07
Les07
Abrianto Nugraha
Les09
Les09
Abrianto Nugraha
plsql Les07
plsql Les07
sasa_eldoby
Les10
Les10
Abrianto Nugraha
Les11
Les11
Abrianto Nugraha
PL/SQL 3 DML
PL/SQL 3 DML
Richard Eliseo Mendoza Gafaro
Les02
Les02
Abrianto Nugraha
plsql Les09
plsql Les09
sasa_eldoby
Producing Readable Output with iSQL*Plus - Oracle Data Base
Producing Readable Output with iSQL*Plus - Oracle Data Base
Salman Memon
Les01
Les01
Abrianto Nugraha
PL/SQL CURSORES
PL/SQL CURSORES
Richard Eliseo Mendoza Gafaro
PL/SQL CONDICIONALES Y CICLOS
PL/SQL CONDICIONALES Y CICLOS
Richard Eliseo Mendoza Gafaro
Lesson09
Lesson09
renguzi
wee
wee
gapczar
Roshan Titus
Constructing the IMPL Flowsheet Using Dia with Python (IMPL-FlowsheetDiaPy)
Constructing the IMPL Flowsheet Using Dia with Python (IMPL-FlowsheetDiaPy)
Alkis Vazacopoulos
Lesson03 学会使用单行函数
Lesson03 学会使用单行函数
renguzi
plsql les03
plsql les03
sasa_eldoby
What's hot
(20)
Les08
Les08
Les06
Les06
Les07
Les07
Les09
Les09
plsql Les07
plsql Les07
Les10
Les10
Les11
Les11
PL/SQL 3 DML
PL/SQL 3 DML
Les02
Les02
plsql Les09
plsql Les09
Producing Readable Output with iSQL*Plus - Oracle Data Base
Producing Readable Output with iSQL*Plus - Oracle Data Base
Les01
Les01
PL/SQL CURSORES
PL/SQL CURSORES
PL/SQL CONDICIONALES Y CICLOS
PL/SQL CONDICIONALES Y CICLOS
Lesson09
Lesson09
wee
wee
Constructing the IMPL Flowsheet Using Dia with Python (IMPL-FlowsheetDiaPy)
Constructing the IMPL Flowsheet Using Dia with Python (IMPL-FlowsheetDiaPy)
Lesson03 学会使用单行函数
Lesson03 学会使用单行函数
plsql les03
plsql les03
Similar to Lesson04 学会使用分组函数
Lesson08
Lesson08
renguzi
Lesson07
Lesson07
renguzi
Aggregating Data Using Group Functions
Aggregating Data Using Group Functions
Salman Memon
Oracle examples
Oracle examples
MaRwa Samih AL-Amri
Lesson10
Lesson10
renguzi
Oracle SQL - Aggregating Data Les 05.ppt
Oracle SQL - Aggregating Data Les 05.ppt
DrZeeshanBhatti
Subqueries -Oracle DataBase
Subqueries -Oracle DataBase
Salman Memon
Consultas con agrupaci¾n de datos
Consultas con agrupaci¾n de datos
Caleb Gutiérrez
plsql les01
plsql les01
sasa_eldoby
Les05
Les05
Akmal Rony
Les04
Les04
Abrianto Nugraha
plsql Les08
plsql Les08
sasa_eldoby
Veri Ambarları için Oracle'ın Analitik SQL Desteği
Veri Ambarları için Oracle'ın Analitik SQL Desteği
Emrah METE
Les11.ppt
Les11.ppt
AlhassanFederated
08 Dynamic SQL and Metadata
08 Dynamic SQL and Metadata
rehaniltifat
plsql les02
plsql les02
sasa_eldoby
Creating Views - oracle database
Creating Views - oracle database
Salman Memon
Sql views
Sql views
arshid045
Writing Basic SQL SELECT Statements
Writing Basic SQL SELECT Statements
Salman Memon
MySQL Quick Dive
MySQL Quick Dive
Sudipta Kumar Sahoo
Similar to Lesson04 学会使用分组函数
(20)
Lesson08
Lesson08
Lesson07
Lesson07
Aggregating Data Using Group Functions
Aggregating Data Using Group Functions
Oracle examples
Oracle examples
Lesson10
Lesson10
Oracle SQL - Aggregating Data Les 05.ppt
Oracle SQL - Aggregating Data Les 05.ppt
Subqueries -Oracle DataBase
Subqueries -Oracle DataBase
Consultas con agrupaci¾n de datos
Consultas con agrupaci¾n de datos
plsql les01
plsql les01
Les05
Les05
Les04
Les04
plsql Les08
plsql Les08
Veri Ambarları için Oracle'ın Analitik SQL Desteği
Veri Ambarları için Oracle'ın Analitik SQL Desteği
Les11.ppt
Les11.ppt
08 Dynamic SQL and Metadata
08 Dynamic SQL and Metadata
plsql les02
plsql les02
Creating Views - oracle database
Creating Views - oracle database
Sql views
Sql views
Writing Basic SQL SELECT Statements
Writing Basic SQL SELECT Statements
MySQL Quick Dive
MySQL Quick Dive
Recently uploaded
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
ScyllaDB
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
Fwdays
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
Scott Keck-Warren
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
BookNet Canada
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
Padma Pradeep
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
Mark Billinghurst
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
Slibray Presentation
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
Sergiu Bodiu
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
The Digital Insurer
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
shyamraj55
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
NavinnSomaal
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April Automation LPDG
MarianaLemus7
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
Memoori
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
Florian Wilhelm
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
hariprasad279825
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
2toLead Limited
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
Scott Keck-Warren
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
2toLead Limited
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
Fwdays
Recently uploaded
(20)
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April Automation LPDG
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
Lesson04 学会使用分组函数
1.
Oracle OCP 考试系列培训
之 1Z0-007 Lesson4 www.OracleOnLinux.cn 4-1 Copyright © 2012, www.OracleOnLinux . All rights reserved. OracleOnLinux OracleOnLinux.cn
2.
4
Reporting Aggregated Data Using the Group Functions 4-2 Copyright © 2012, www.OracleOnLinux . All rights reserved. OracleOnLinux OracleOnLinux.cn
3.
Objectives
After completing this lesson, you should be able to do the following: • Identify the available group functions • Describe the use of group functions • Group data by using the GROUP BY clause • Include or exclude grouped rows by using the HAVING clause 4-3 Copyright © 2012, www.OracleOnLinux . All rights reserved. OracleOnLinux OracleOnLinux.cn
4.
What Are Group
Functions? Group functions operate on sets of rows to give one result per group. EMPLOYEES Maximum salary in EMPLOYEES table … 4-4 Copyright © 2012, www.OracleOnLinux . All rights reserved. OracleOnLinux OracleOnLinux.cn
5.
Types of Group
Functions • AVG • COUNT • MAX Group • MIN functions • STDDEV • SUM • VARIANCE 4-5 Copyright © 2012, www.OracleOnLinux . All rights reserved. OracleOnLinux OracleOnLinux.cn
6.
Group Functions: Syntax
SELECT [column,] group_function(column), ... FROM table [WHERE condition] [GROUP BY column] [ORDER BY column]; 4-6 Copyright © 2012, www.OracleOnLinux . All rights reserved. OracleOnLinux OracleOnLinux.cn
7.
Using the AVG
and SUM Functions You can use AVG and SUM for numeric data. SELECT AVG(salary), MAX(salary), MIN(salary), SUM(salary) FROM employees WHERE job_id LIKE '%REP%'; 4-7 Copyright © 2012, www.OracleOnLinux . All rights reserved. OracleOnLinux OracleOnLinux.cn
8.
Using the MIN
and MAX Functions You can use MIN and MAX for numeric, character, and date data types. SELECT MIN(hire_date), MAX(hire_date) FROM employees; 4-8 Copyright © 2012, www.OracleOnLinux . All rights reserved. OracleOnLinux OracleOnLinux.cn
9.
Using the COUNT
Function COUNT(*) returns the number of rows in a table: COUNT(* SELECT COUNT(*) COUNT(* 1 FROM employees WHERE department_id = 50; COUNT(expr) returns the number of rows with non- null values for the expr: SELECT COUNT(commission_pct),COUNT(salary),COUNT(*) COUNT(commission_pct),COUNT(salary),COUNT( ,COUNT(salary),COUNT(* 2 FROM employees; employees; 4-9 Copyright © 2012, www.OracleOnLinux . All rights reserved. OracleOnLinux OracleOnLinux.cn
10.
Using the DISTINCT
Keyword • COUNT(DISTINCT expr) returns the number of distinct non-null values of the expr. • To display the number of distinct department values in the EMPLOYEES table: SELECT COUNT(DISTINCT department_id) FROM employees; 4-10 Copyright © 2012, www.OracleOnLinux . All rights reserved. OracleOnLinux OracleOnLinux.cn
11.
Group Functions and
Null Values Group functions ignore null values in the column : column: SELECT AVG(commission_pct) 1 FROM employees; The NVL function forces group functions to include null values: SELECT SUM(commission_pct)/COUNT(*) SUM(commission_pct)/COUNT(* (commission_pct)/COUNT( 2 FROM employees; SELECT SUM(commission_pct)/COUNT(commission_pct) 3 FROM employees; SELECT AVG(NVL(commission_pct, 0)) 4 FROM employees; 4-11 Copyright © 2012, www.OracleOnLinux . All rights reserved. OracleOnLinux OracleOnLinux.cn
12.
Creating Groups of
Data EMPLOYEES 4400 9500 3500 Average salary in EMPLOYEES 6400 table for each department 10033 … 4-12 Copyright © 2012, www.OracleOnLinux . All rights reserved. OracleOnLinux OracleOnLinux.cn
13.
Creating Groups of
Data: GROUP BY Clause Syntax SELECT column, group_function(column) FROM table [WHERE condition] [GROUP BY group_by_expression] [ORDER BY column]; You can divide rows in a table into smaller groups by using the GROUP BY clause. 4-13 Copyright © 2012, www.OracleOnLinux . All rights reserved. OracleOnLinux OracleOnLinux.cn
14.
Using the GROUP
BY Clause All columns in the SELECT list that are not in group functions must be in the GROUP BY clause. SELECT department_id, AVG(salary) FROM employees GROUP BY department_id ; 4-14 Copyright © 2012, www.OracleOnLinux . All rights reserved. OracleOnLinux OracleOnLinux.cn
15.
Using the GROUP
BY Clause The GROUP BY column does not have to be in the SELECT list. SELECT AVG(salary) FROM employees GROUP BY department_id ; 4-15 Copyright © 2012, www.OracleOnLinux . All rights reserved. OracleOnLinux OracleOnLinux.cn
16.
Grouping by More
Than One Column EMPLOYEES Add the salaries in the EMPLOYEES table for each job, grouped by department … 4-16 Copyright © 2012, www.OracleOnLinux . All rights reserved. OracleOnLinux OracleOnLinux.cn
17.
Using the GROUP
BY Clause on Multiple Columns SELECT department_id dept_id, job_id, SUM(salary) FROM employees GROUP BY department_id, job_id ; 4-17 Copyright © 2012, www.OracleOnLinux . All rights reserved. OracleOnLinux OracleOnLinux.cn
18.
Illegal Queries
Using Group Functions Any column or expression in the SELECT list that is not an aggregate function must be in the GROUP BY clause: clause: SELECT department_id, COUNT(last_name) FROM employees; SELECT department_id, COUNT(last_name) * ERROR at line 1: ORA-00937: not a single-group group function Column missing in the GROUP BY clause 4-18 Copyright © 2012, www.OracleOnLinux . All rights reserved. OracleOnLinux OracleOnLinux.cn
19.
Illegal Queries
Using Group Functions • You cannot use the WHERE clause to restrict groups. • You use the HAVING clause to restrict groups. • You cannot use group functions in the WHERE clause. SELECT department_id, AVG(salary) FROM employees WHERE AVG(salary) > 8000 GROUP BY department_id; WHERE AVG(salary) > 8000 * ERROR at line 3: ORA-00934: group function is not allowed here Cannot use the WHERE clause to restrict groups 4-19 Copyright © 2012, www.OracleOnLinux . All rights reserved. OracleOnLinux OracleOnLinux.cn
20.
Restricting Group Results
EMPLOYEES The maximum salary per department when it is greater than $10,000 … 4-20 Copyright © 2012, www.OracleOnLinux . All rights reserved. OracleOnLinux OracleOnLinux.cn
21.
Restricting Group Results
with the HAVING Clause When you use the HAVING clause, the Oracle server restricts groups as follows: 1. Rows are grouped. 2. The group function is applied. 3. Groups matching the HAVING clause are displayed. SELECT column, group_function FROM table [WHERE condition] [GROUP BY group_by_expression] [HAVING group_condition] [ORDER BY column]; 4-21 Copyright © 2012, www.OracleOnLinux . All rights reserved. OracleOnLinux OracleOnLinux.cn
22.
Using the HAVING
Clause SELECT department_id, MAX(salary) FROM employees GROUP BY department_id HAVING MAX(salary)>10000 ; 4-22 Copyright © 2012, www.OracleOnLinux . All rights reserved. OracleOnLinux OracleOnLinux.cn
23.
Using the HAVING
Clause SELECT job_id, SUM(salary) PAYROLL FROM employees WHERE job_id NOT LIKE '%REP%' GROUP BY job_id HAVING SUM(salary) > 13000 ORDER BY SUM(salary); 4-23 Copyright © 2012, www.OracleOnLinux . All rights reserved. OracleOnLinux OracleOnLinux.cn
24.
Nesting Group Functions
Display the maximum average salary: SELECT MAX(AVG(salary)) FROM employees GROUP BY department_id; 4-24 Copyright © 2012, www.OracleOnLinux . All rights reserved. OracleOnLinux OracleOnLinux.cn
25.
Summary
In this lesson, you should have learned how to: • Use the group functions COUNT, MAX, MIN, and AVG • Write queries that use the GROUP BY clause • Write queries that use the HAVING clause SELECT column, group_function FROM table [WHERE condition] [GROUP BY group_by_expression] [HAVING group_condition] [ORDER BY column]; 4-25 Copyright © 2012, www.OracleOnLinux . All rights reserved. OracleOnLinux OracleOnLinux.cn
26.
Practice 4: Overview
This practice covers the following topics: • Writing queries that use the group functions • Grouping by rows to achieve more than one result • Restricting groups by using the HAVING clause 4-26 Copyright © 2012, www.OracleOnLinux . All rights reserved. OracleOnLinux OracleOnLinux.cn
27.
Practice 4
Q1:The CUSTOMERS table has these columns: Q1:The CUSTOMER_ID NUMBER(4) NOT NULL CUSTOMER_NAME VARCHAR2(100) NOT NULL STREET_ADDRESS VARCHAR2(150) CITY_ADDRESS VARCHAR2(50) STATE_ADDRESS VARCHAR2(50) PROVINCE_ADDRESS VARCHAR2(50) COUNTRY_ADDRESS VARCHAR2(50) POSTAL_CODE VARCHAR2(12) CUSTOMER_PHONE VARCHAR2(20) The CUSTOMER_ID column is the primary key for the table. 4-27 Copyright © 2012, www.OracleOnLinux . All rights reserved. OracleOnLinux OracleOnLinux.cn
28.
Practice 4
Q1: You need to determine how dispersed your customer base is. Which expression finds the number of different countries represented in the CUSTOMERS table? A. COUNT(UPPER(country_address)) B. COUNT(DIFF(UPPER(country_address))) C. COUNT(UNIQUE(UPPER(country_address))) D. COUNT DISTINCT UPPER(country_address) E. COUNT(DISTINCT (UPPER(country_address))) 4-28 Copyright © 2012, www.OracleOnLinux . All rights reserved. OracleOnLinux OracleOnLinux.cn
29.
Practice 4
Q2: Which clause should you use to exclude group results? A. WHERE B. HAVING C. RESTRICT D. GROUP BY E. ORDER BY 4-29 Copyright © 2012, www.OracleOnLinux . All rights reserved. OracleOnLinux OracleOnLinux.cn
30.
Practice 4
Q3: Which two are true about aggregate functions? (Choose two.) A. You can use aggregate functions in any clause of a SELECT statement. B. You can use aggregate functions only in the column list of the SELECT clause and in the WHERE clause of a SELECT statement. C. You can mix single row columns with aggregate functions in the column list of a SELECT statement by grouping on the single row columns. 4-30 Copyright © 2012, www.OracleOnLinux . All rights reserved. OracleOnLinux OracleOnLinux.cn
31.
Practice 4
Q3: D. You can pass column names, expressions, constants, or functions as parameters to an aggregate function. E. You can use aggregate functions on a table, only by grouping the whole table as one single group. F. You cannot group the rows of a table by more than one column while using aggregate functions. 4-31 Copyright © 2012, www.OracleOnLinux . All rights reserved. OracleOnLinux OracleOnLinux.cn
Download now