0% found this document useful (0 votes)
65 views2 pages

Group Functions StudentNotes

Group functions operate on sets of rows to return one result per group. Common group functions include COUNT, SUM, AVG, MIN, and MAX. The GROUP BY clause divides rows into groups and the group function result is applied to each group. Any columns in the select list that are not group functions must be in the GROUP BY clause. The HAVING clause restricts which groups are displayed based on the group function results.

Uploaded by

MazMoh
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
65 views2 pages

Group Functions StudentNotes

Group functions operate on sets of rows to return one result per group. Common group functions include COUNT, SUM, AVG, MIN, and MAX. The GROUP BY clause divides rows into groups and the group function result is applied to each group. Any columns in the select list that are not group functions must be in the GROUP BY clause. The HAVING clause restricts which groups are displayed based on the group function results.

Uploaded by

MazMoh
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 2

Group Functions

SELECT column_name, group_function(column_name) FROM table name(s) WHERE - restricts rows NO GROUP FUNCTIONS HERE!! GROUP BY - specifies how each column's values will be grouped so the group function can act on and return a value for each group HAVING - restricts which groups to display ORDER BY - specifies how the group data will be displayed *Group functions operate on sets of rows to give one result per group. *All group functions ignore NULL values *To include NULL values in group function calculations, use the NVL, NVL2 or COALESCE function to convert the NULL values to a value in the table. *All columns in the SELECT list that are NOT group functions must be in the GROUP BY clause, *Column aliases can NOT be used in the GROUP BY clause *GROUP BY clauses divide the data into groups,then the calculation is applied to each group AVG and SUM *use with numeric data SELECT ROUND(AVG(salary),2) FROM employees; SELECT DISTINCT AVG(salary) FROM employees WHERE job_id LIKE 'AD%'OR job_id LIKE 'ST%' GROUP BY last_name, salary SELECT job_id, AVG(salary) FROM employees WHERE job_id LIKE 'AD%' OR job_id LIKE 'ST%' GROUP BY job_id SELECT SUM(salary) FROM employees WHERE job_id LIKE 'AD%'; SELECT COUNT(*) AS "Total Number of Employees", SUM(DECODE(TO_CHAR(hire_date, 'RRRR'), '1998', 1,0)) AS " Employed in 1998", SUM(DECODE(TO_CHAR(hire_date, 'RRRR'), '1999', 1,0)) AS " Employed in 1999" FROM employees MAX and MIN *use with any data type SELECT MIN(salary), MAX(hire_date). MIN(last_name), MAX(last_name) FROM employees WHERE department_id IN (50 , 60 )

COUNT SELECT COUNT(*) FROM employees; SELECT COUNT(department_id) FROM employees; SELECT COUNT(manager_id) FROM employees SELECT COUNT(DISTINCT department_id) FROM employees;

NVL * applying NVL to fill in the NULL values in Group Functions SELECT COUNT(commission_pct) FROM employees SELECT COUNT(NVL(commission_pct, 0)) FROM employees GROUP BY CLAUSE *Use the Group By clause to divide the rows in a table into groups then apply the Group Functions to return summary information about that group. *If the Group By clause is used, all individual columns in the SELECT clause must also appear in the Group By clause. *Columns in the GROUP BY clause do not have to appear in the SELECT clause. * No column aliases can be used in the Group By clause * Use the Order By clause to sort the results other than the default ASC order *The WHERE clause, if used, can not have any group functions - use it to restrict any columns in the SELECT clause that are not group functions *Use the HAVING clause to restrict groups not the WHERE clause SELECT manager_id, AVG(salary) FROM employees GROUP BY manager_id; SELECT last_name, MAX(salary) FROM employees WHERE last_name LIKE 'K%' GROUP BY manager_id, last_name HAVING MAX(salary) >16000 ORDER BY last_name DESC

You might also like