Reporting Aggregated Data Using the Group Functions. Objectives

Similar documents
Aggregating Data Using Group Functions

Oracle Database 10g: SQL Fundamentals I

SECTION 3 LESSON 1. Destinations: What s in My Future?

Structured Query Language (SQL)

Oracle SQL. Course Summary. Duration. Objectives

Appendix A Practices and Solutions

Oracle Database: SQL and PL/SQL Fundamentals

Oracle Database: SQL and PL/SQL Fundamentals

Duration Vendor Audience 5 Days Oracle End Users, Developers, Technical Consultants and Support Staff

Examine the structure of the EMPLOYEES table: EMPLOYEE_ID NUMBER Primary Key FIRST_NAME VARCHAR2(25) LAST_NAME VARCHAR2(25)

Oracle For Beginners Page : 1

Oracle Database: SQL and PL/SQL Fundamentals NEW

SQL Nested & Complex Queries. CS 377: Database Systems

AN INTRODUCTION TO THE SQL PROCEDURE Chris Yindra, C. Y. Associates

Programming with SQL

SQL SELECT Query: Intermediate

Relational Database: Additional Operations on Relations; SQL

Oracle Database 12c: Introduction to SQL Ed 1.1

Week 4 & 5: SQL. SQL as a Query Language

Chapter 1 Overview of the SQL Procedure

Retrieving Data Using the SQL SELECT Statement. Copyright 2006, Oracle. All rights reserved.

CS 338 Join, Aggregate and Group SQL Queries

2874CD1EssentialSQL.qxd 6/25/01 3:06 PM Page 1 Essential SQL Copyright 2001 SYBEX, Inc., Alameda, CA

Financial Data Access with SQL, Excel & VBA

Performing Queries Using PROC SQL (1)

COMP 5138 Relational Database Management Systems. Week 5 : Basic SQL. Today s Agenda. Overview. Basic SQL Queries. Joins Queries

Creating QBE Queries in Microsoft SQL Server

Chapter 9 Joining Data from Multiple Tables. Oracle 10g: SQL

SQL - QUICK GUIDE. Allows users to access data in relational database management systems.

- Eliminating redundant data - Ensuring data dependencies makes sense. ie:- data is stored logically

Oracle Database: SQL and PL/SQL Fundamentals NEW


Information and Computer Science Department ICS 324 Database Systems Lab#11 SQL-Basic Query

2. Which three statements about functions are true? (Choose three.) Mark for Review (1) Points

Introduction to SQL: Data Retrieving

Part 4: Database Language - SQL

Lecture 25: Database Notes

Netezza SQL Class Outline

MySQL for Beginners Ed 3

FileMaker 13. SQL Reference

Instant SQL Programming

Handling Missing Values in the SQL Procedure

Advance DBMS. Structured Query Language (SQL)

Introduction to Microsoft Jet SQL

CONVERSION FUNCTIONS QUESTIONS

Oracle Database 10g: Introduction to SQL

DBMS / Business Intelligence, SQL Server

Where? Originating Table Employees Departments

3.GETTING STARTED WITH ORACLE8i

Displaying Data from Multiple Tables. Copyright 2004, Oracle. All rights reserved.

Displaying Data from Multiple Tables. Copyright 2006, Oracle. All rights reserved.

CHAPTER 12. SQL Joins. Exam Objectives

T-SQL STANDARD ELEMENTS

Displaying Data from Multiple Tables

Oracle9i: Develop PL/SQL Program Units

Inquiry Formulas. student guide

Handling Exceptions. Copyright 2008, Oracle. All rights reserved.

How To Create A Table In Sql (Ahem)

Chapter 5 More SQL: Complex Queries, Triggers, Views, and Schema Modification

1 Structured Query Language: Again. 2 Joining Tables

A basic create statement for a simple student table would look like the following.

D61830GC30. MySQL for Developers. Summary. Introduction. Prerequisites. At Course completion After completing this course, students will be able to:

ICAB4136B Use structured query language to create database structures and manipulate data

Mini User's Guide for SQL*Plus T. J. Teorey

Join Example. Join Example Cart Prod Comprehensive Consulting Solutions, Inc.All rights reserved.

Query-by-Example (QBE)

Chapter 8. SQL-99: SchemaDefinition, Constraints, and Queries and Views

P_Id LastName FirstName Address City 1 Kumari Mounitha VPura Bangalore 2 Kumar Pranav Yelhanka Bangalore 3 Gubbi Sharan Hebbal Tumkur

2. DECODE Function, CASE Expression

Lab # 5. Retreiving Data from Multiple Tables. Eng. Alaa O Shama

PSU SQL: Introduction. SQL: Introduction. Relational Databases. Activity 1 Examining Tables and Diagrams

GET DATA FROM MULTIPLE TABLES QUESTIONS

Database Programming with PL/SQL: Learning Objectives

LMS User Manual LMS Grade Book NUST LMS

MOC 20461C: Querying Microsoft SQL Server. Course Overview

Database Administration with MySQL

Chapter 5. SQL: Queries, Constraints, Triggers

Business Intelligence Extensions for SPARQL

DATABASE DESIGN AND IMPLEMENTATION II SAULT COLLEGE OF APPLIED ARTS AND TECHNOLOGY SAULT STE. MARIE, ONTARIO. Sault College

Displaying Data from Multiple Tables. Copyright 2004, Oracle. All rights reserved.

D S D Q U E R Y M E N U

Outline. SAS-seminar Proc SQL, the pass-through facility. What is SQL? What is a database? What is Proc SQL? What is SQL and what is a database

Handling Exceptions. Copyright 2006, Oracle. All rights reserved. Oracle Database 10g: PL/SQL Fundamentals 8-1

Database Design and Database Programming with SQL - 5 Day In Class Event Day 1 Activity Start Time Length

Review your answers, feedback, and question scores below. An asterisk (*) indicates a correct answer.

2. Which of the following declarations is invalid? Mark for Review (1) Points

Web Application Disassembly with ODBC Error Messages By David Litchfield Director of Security

Introduction to SQL C H A P T E R3. Exercises

Oracle Database: Introduction to SQL

Retrieval: Multiple Tables and Aggregation

Oracle For Beginners Page : 1

STUDY OF PL/SQL BLOCK AIM: To Study about PL/SQL block.

More on SQL. Juliana Freire. Some slides adapted from J. Ullman, L. Delcambre, R. Ramakrishnan, G. Lindstrom and Silberschatz, Korth and Sudarshan

4. SQL. Contents. Example Database. CUSTOMERS(FName, LName, CAddress, Account) PRODUCTS(Prodname, Category) SUPPLIERS(SName, SAddress, Chain)

QlikView 11.2 SR5 DIRECT DISCOVERY

Data Structure: Relational Model. Programming Interface: JDBC/ODBC. SQL Queries: The Basic From

What is the value of SQL%ISOPEN immediately after the SELECT statement is executed? Error. That attribute does not apply for implicit cursors.

Database Applications Microsoft Access

Database CIS 340. lab#6. I.Arwa Najdi

SQL Basics. Introduction to Standard Query Language

Transcription:

5 Reporting Aggregated Data Using the Group Functions 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 5-2 1

Lesson Agenda Group functions: Types and syntax Use AVG, SUM, MIN, MAX, COUNT Use DISTINCT keyword within group functions NULL values in a group function Grouping rows: GROUP BY clause HAVING clause Nesting group functions 5-3 What Are Group Functions? Group functions operate on sets of rows to give one result per group. EMPLOYEES Maximum salary in EMPLOYEES table 5-4 2

Types of Group Functions AVG COUNT MAX MIN STDDEV SUM VARIANCE Group functions 5-5 Group Functions: Syntax SELECT group_function(column),... FROM table [WHERE condition] [ORDER BY column]; 5-6 3

Using the AVG and SUM Functions You can use AVG and SUM for numeric data. SELECT AVG(salary), MAX(salary), MIN(salary), SUM(salary) WHERE job_id LIKE '%REP%'; 5-7 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) ; 5-8 4

Using the COUNT Function COUNT(*) returns the number of rows in a table: 1 SELECT COUNT(*) WHERE department_id = 50; COUNT(expr) returns the number of rows with non-null values for expr: 2 SELECT COUNT(commission_pct) WHERE department_id = 80; 5-9 Using the DISTINCT Keyword COUNT(DISTINCT expr) returns the number of distinct non-null values of expr. To display the number of distinct department values in the EMPLOYEES table: SELECT COUNT(DISTINCT department_id) ; 5-10 5

Group Functions and Null Values Group functions ignore null values in the column: 1 SELECT AVG(commission_pct) ; The NVL function forces group functions to include null values: 2 SELECT AVG(NVL(commission_pct, 0)) ; 5-11 Lesson Agenda Group functions: Types and syntax Use AVG, SUM, MIN, MAX, COUNT Use DISTINCT keyword within group functions NULL values in a group function Grouping rows: GROUP BY clause HAVING clause Nesting group functions 5-12 6

Creating Groups of Data EMPLOYEES 4400 9500 Average salary in EMPLOYEES table for each department 3500 6400 10033 5-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. 5-14 7

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) GROUP BY department_id ; 5-15 Using the GROUP BY Clause The GROUP BY column does not have to be in the SELECT list. SELECT AVG(salary) GROUP BY department_id ; 5-16 8

Grouping by More than One Column EMPLOYEES Add the salaries in the EMPLOYEES table for each job, grouped by department. 5-17 Using the GROUP BY Clause on Multiple Columns SELECT department_id, job_id, SUM(salary) WHERE department_id > 40 GROUP BY department_id, job_id ORDER BY department_id; 5-18 9

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: SELECT department_id, COUNT(last_name) ; A GROUP BY clause must be added to count the last names for each department_id. SELECT department_id, job_id, COUNT(last_name) GROUP BY department_id; Either add job_id in the GROUP BY or remove the job_id column from the SELECT list. 5-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) WHERE AVG(salary) > 8000 GROUP BY department_id; Cannot use the WHERE clause to restrict groups 5-20 10

Restricting Group Results EMPLOYEES The maximum salary per department when it is greater than $10,000 5-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]; 5-22 11

Using the HAVING Clause SELECT department_id, MAX(salary) GROUP BY department_id HAVING MAX(salary)>10000 ; 5-23 Using the HAVING Clause SELECT job_id, SUM(salary) PAYROLL WHERE job_id NOT LIKE '%REP%' GROUP BY job_id HAVING SUM(salary) > 13000 ORDER BY SUM(salary); 5-24 12

Lesson Agenda Group functions: Types and syntax Use AVG, SUM, MIN, MAX, COUNT Use DISTINCT keyword within group functions NULL values in a group function Grouping rows: GROUP BY clause HAVING clause Nesting group functions 5-25 Nesting Group Functions Display the maximum average salary: SELECT MAX(AVG(salary)) GROUP BY department_id; 5-26 13

Quiz Identify the guidelines for group functions and the GROUP BY clause. 1. You cannot use a column alias in the GROUP BY clause. 2. The GROUP BY column must be in the SELECT clause. 3. By using a WHERE clause, you can exclude rows before dividing them into groups. 4. The GROUP BY clause groups rows and ensures order of the result set. 5. If you include a group function in a SELECT clause, you cannot select individual results as well. 5-27 Summary In this lesson, you should have learned how to: Use the group functions COUNT, MAX, MIN, SUM, 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]; 5-28 14

Practice 5: 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 5-29 15