Course Content
What is Oracle
0/1
Oracle Tables
0/1
CREATE TABLE AS in Oracle
0/1
ALTER TABLE In Oracle
0/1
DROP TABLE In Oracle
0/1
TRUNCATE TABLE In Oracle
0/1
QUERIES In Oracle
0/1
INSERT Query In Oracle
0/1
SELECT Query In Oracle
0/1
UPDATE Query In Oracle
0/1
DELETE Query In Oracle
0/1
INSERT ALL In Oracle
0/1
GROUP BY Clause In Oracle
0/1
HAVING Clause In Oracle
0/1
ORDER BY Clause In Oracle
0/1
MINUS In Oracle
0/1
INTERSECT Operator In Oracle
0/1
TRIGGER In Oracle
0/1
AFTER TRIGGER In Oracle
0/1
BEFORE TRIGGER In Oracle
0/1
ENABLE TRIGGER In Oracle
0/1
DISABLE TRIGGER In Oracle
0/1
DROP TRIGGER In Oracle
0/1
CURSOR In Oracle
0/1
VIEW In Oracle
0/1
DISTINCT Clause In Oracle
0/1
PROCEDURE In Oracle
0/1
UNION In Oracle
0/1
UNION ALL In Oracle
0/1
OUTER JOIN In Oracle
0/1
INNER JOIN In Oracle
0/1
CROSS JOIN In Oracle
0/1
EQUI JOIN In Oracle
0/1
SEMI JOIN In Oracle
0/1
SELF JOIN In Oracle
0/1
ANTI JOIN In Oracle
0/1
ROWNUM In Oracle
0/1
SQLERRM Function In Oracle
0/1
SQLCODE Function In Oracle
0/1
USERENV Function In Oracle
0/1
ACOS Function In Oracle
0/1
ADD_MONTHS Function In Oracle
0/1
ASCII Function In Oracle
0/1
ASCIISTR Function In Oracle
0/1
ASIN Function In Oracle
0/1
ATAN Function In Oracle
0/1
ATAN2 Function In Oracle
0/1
AVG Function In Oracle
0/1
BFILENAME Function In Oracle
0/1
ABS Function In Oracle
0/1
BIN_TO_NUM Function In Oracle
0/1
BITAND Function In Oracle
0/1
CARDINALITY Function In Oracle
0/1
CASE Function In Oracle
0/1
CAST Function In Oracle
0/1
CEIL Function In Oracle
0/1
CHARTOROWID Function In Oracle
0/1
CHR Function In Oracle
0/1
COALESCE Function In Oracle
0/1
COMPOSE Function In Oracle
0/1
CONCAT With Function In Oracle
0/1
CONCAT Function In Oracle
0/1
CONVERT Function In Oracle
0/1
CORR Function In Oracle
0/1
COS Function In Oracle
0/1
COSH Function In Oracle
0/1
COUNT Function In Oracle
0/1
COVAR_POP Function In Oracle
0/1
COVAR_SAMP Function In Oracle
0/1
CUME_DIST Function In Oracle
0/1
CURRENT_DATE In Oracle
0/1
CURRENT_TIMESTAMP Function In Oracle
0/1
DBTIMEZONE Function In Oracle
0/1
DECODE Function In Oracle
0/1
DECOMPOSE Function In Oracle
0/1
DENSE_RANK Function In Oracle
0/1
DUMP Function In Oracle
0/1
EMPTY_BLOB Fuction In Oracle
0/1
EMPTY_CLOB Function In Oracle
0/1
EXP Function In Oracle
0/1
EXTRACT Function In Oracle
0/1
FIRST_VALUE Function In Oracle
0/1
FLOOR Function In Oracle
0/1
FROM_TZ Function In Oracle
0/1
GLOBAL TEMP TABLES In Oracle
0/1
GREATEST Function In Oracle
0/1
GROUP_ID Function In Oracle
0/1
HEXTORAW Function In Oracle
0/1
INITCAP Function In Oracle
0/1
INSTR Function In Oracle
0/1
INSTR2 Function In Oracle
0/1
VARIANCE Function In Oracle
0/1
VAR_SAMP Function In Oracle
0/1
VAR_POP Function In Oracle
0/1
USER Function In Oracle
0/1
UID Function In Oracle
0/1
TZ_OFFSET Function In Oracle
0/1
TRUNC (Numbers) Function In Oracle
0/1
TRUNC (Dates) Function In Oracle
0/1
TO_YMINTERVAL Function In Oracle
0/1
TO_TIMESTAMP_TZ Function In Oracle
0/1
TO_TIMESTAMP Function In Oracle
0/1
TO_SINGLE_BYTE Function In Oracle
0/1
TO_NUMBER Function In Oracle
0/1
TO_NCLOB Function In Oracle
0/1
TO_MULTI_BYTE Function In Oracle
0/1
TO_LOB Function In Oracle
0/1
TO_DSINTERVAL Function In Oracle
0/1
TO_DATE Function In Oracle
0/1
TO_CLOB Function In Oracle
0/1
TO_CHAR Function In Oracle
0/1
TANH Function In Oracle
0/1
TAN Function In Oracle
0/1
SYSTIMESTAMP Function In Oracle
0/1
SYSDATE Function In Oracle
0/1
SYS_CONTEXT Function In Oracle
0/1
SQRT Function In Oracle
0/1
SESSIONTIMEZONE Function In Oracle
0/1
LOG Function In Oracle
0/1
LAST_DAY Function In Oracle
0/1
LEAST Function In Oracle
0/1
LENGTH Function In Oracle
0/1
LENGTH2 Function In Oracle
0/1
INSTR4 Function In Oracle
0/1
INSTRB Function In Oracle
0/1
INSTRC Function In Oracle
0/1
LAG Function In Oracle
0/1
LAST_VALUE Function In Oracle
0/1
LEAD Function In Oracle
0/1
LENGTH4 Function In Oracle
0/1
LENGTHB Function In Oracle
0/1
LENGTHC Function In Oracle
0/1
LISTAGG Function In Oracle
0/1
LN Function In Oracle
0/1
LNNVL Function In Oracle
0/1
LOCAL TEMP TABLES In Oracle
0/1
LOCALTIMESTAMP Function In Oracle
0/1
MAX Function In Oracle
0/1
MEDIAN Function In Oracle
0/1
MIN Function In Oracle
0/1
MOD Function In Oracle
0/1
MONTHS_BETWEEN Function In Oracle
0/1
NANVL Function In Oracle
0/1
NEW_TIME Function In Oracle
0/1
NEXT_DAY Function In Oracle
0/1
NULLIF Function In Oracle
0/1
NUMTODSINTERVAL Function In Oracle
0/1
NUMTOYMINTERVAL Function In Oracle
0/1
NVL Function In Oracle
0/1
NVL2 Function In Oracle
0/1
POWER Function In Oracle
0/1
STDDEV Function In Oracle
0/1
NTH_VALUE Function In Oracle
0/1
SINH Function In Oracle
0/1
SIN Function In Oracle
0/1
SIGN Function In Oracle
0/1
ROUND (Numbers) Function In Oracle
0/1
FROM Clause In Oracle
0/1
FUNCTION In Oracle
0/1
SUM Function In Oracle
0/1
ROUND (Dates) Function In Oracle
0/1
REMAINDER Function In Oracle
0/1
JOINS In Oracle
0/1
RANK Function In Oracle
0/1
RAWTOHEX Function In Oracle
0/1
REGEXP_COUNT Function In Oracle
0/1
Oracle Tutorial
About Lesson

HAVING Clause In Oracle

ORACLE HAVING
Oracle HAVING clause is used with the Oracle GROUP BY Clause, however, it does not have a mandatory existence but still is important enough, as it is used to return the groups of rows only when the condition is TRUE.

Syntax: To group the rows by values in multiple columns.

SELECT expressions
FROM table_name
GROUP BY columns
HAVING having_conditions;

Parameters:
expressions: It is used to specify the columns or calculations to be retrieved.
table_name: It is used to specify the name of the table from which you want to retrieve the records.
columns: It is used to specify the list of columns to be grouped.
having_conditions: It is used to specify the conditions that are applicable only to the result obtained after the successful execution of the GROUP BY command, to restrict the groups of returned rows.

Example:
Students Table:

ID NAME AGE
1 Joy 10
2 Smiley 13
3 Happy 11
4 Tom 13
5 Jerry 10

Query:

SELECT age
FROM students
GROUP BY age
HAVING age > 10;

Output:

AGE
13
11

Explanation:
The ‘students’ is an already existing table. Here we are using the Group By clause to find unique student ages from the ‘students’ table with a restriction of having age greater than 10.

Syntax: Oracle GROUP BY with WHERE clause.

SELECT expressions
FROM table_name
WHERE conditions
GROUP BY columns
HAVING having_conditions;

Parameters:
conditions: It is used to specify the conditions to be strictly followed for selection.

Example:
Students Table:

ID NAME AGE
1 Joy 10
2 Smiley 12
3 Happy 11
4 Tom 13
5 Jerry 10

Query:

SELECT age
FROM students
WHERE  id > 2  
GROUP BY age
HAVING age > 10;

Output:

AGE
11
13

Explanation:
The ‘students’ is an already existing table. Here we are using the Group By clause to find unique student ages from the ‘students’ table, but with a condition that id must be greater than 2 and with a restriction of having age greater than 10.

Syntax: Oracle GROUP BY with ROLLUP.

SELECT expressions
FROM table_name
GROUP BY ROLLUP (column_1, column_2, .., column_n)
HAVING having_conditions;

Parameters:
ROLLUP: It is used to specify multiple levels of grouping. These multiple levels of grouping are computed at once.
columns: It is used to specify the list of columns to be grouped.

Example:
Students Table:

ID NAME AGE
1 Joy 10
2 Smiley 13
3 Happy 11
4 Tom 13
5 Jerry 10

Query:

SELECT name, age
FROM students
GROUP BY ROLLUP (name, age)
HAVING age > 10;

Output:

NAME AGE
Joy 13
Joy 11
Smiley 13
Smiley 11
Happy 13
Happy 11
James 13
James 11
Bond 13
Bond 11

Explanation:
The ‘students’ is an already existing table. Here we are using the Group By clause to find unique student names and ages from the ‘students’ table, but with multiple levels of grouping, and with the restriction of having age greater than 10.

Syntax: Oracle GROUP BY with an aggregate function.

SELECT expressions, aggregate_function (aggregate_expression)  
FROM table_name  
WHERE conditions  
GROUP BY columns
HAVING having_conditions;

Parameters:
Aggregate_function: It is used to specify the aggregate functions. Some of the aggregate functions are SUM, COUNT, MIN, MAX and AVG.
Aggregate_expression: It is used to specify the column or expression to be utilised by the aggregate function.

Example 1: Oracle GROUP BY with COUNT function
Students Table:

ID NAME AGE
1 Joy 10
2 Smiley 13
3 Happy 11
4 James 13
5 Bond 10
6 Jerry 13
7 Tom 12
8 Brutus 12

Query:

SELECT age, COUNT(*) AS “Number of Students”
FROM students
GROUP BY age
HAVING COUNT(*) > 1;

Output:

AGE Number of Students
10 2
13 3
12 2

Explanation:
The ‘students’ is an already existing table. Here we are using the Group By clause with an aggregate function COUNT to count the number of students of the same age group, and with the restriction of having count greater than 1.

Example 2: Oracle GROUP BY with SUM function
Students Table:

ID NAME MARKS AGE
1 Joy 90 10
2 Smiley 100 13
3 Happy 80 11
4 James 85 13
5 Bond 70 10
6 Jerry 100 13
7 Tom 99 12
8 Brutus 60 12

Query:

SELECT age, SUM(marks) AS “Total Marks”
FROM students
GROUP BY age
HAVING SUM(marks) > 100
ORDER BY age;

Output:

AGE Total Marks
10 160
12 159
13 285

Explanation:
The ‘students’ is an already existing table. Here we are using the Group By clause with an aggregate function SUM in order to sum up the marks of the students of the same age group, and with the restriction of having sum of marks greater than 100.

 
 
error: Content is protected !!