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
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
Fwdays
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
LoriGlavin3
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
Rizwan Syed
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
Alfredo García Lavilla
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
BookNet Canada
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
Pixlogix Infotech
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
BookNet Canada
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
Lonnie McRorey
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
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
MounikaPolabathina
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
Commit University
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
Mattias Andersson
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
BookNet Canada
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
Raghuram Pandurangan
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
Slibray Presentation
How to write a Business Continuity Plan
How to write a Business Continuity Plan
Databarracks
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
Kalema Edgar
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
Curtis Poe
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
Lars Bell
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
Alan Dix
Recently uploaded
(20)
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 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
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
How to write a Business Continuity Plan
How to write a Business Continuity Plan
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
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