Aggregate functions
Aggregate functions
HAVING CLAUSE
EX.NO: 4
DATE:
AIM:
To execute the aggregate fuctions using group for Attendance Management System.
COUNT
SUM
AVG
MAX
MIN
TABLE CREATION:
SQL> create table Empll(employee_ID varchar(20),emp_name varchar(20),emp_age
number,emp_gender varchar(20));
Table created.
SQL>insert into Empll values(1,’ram’,20,’male’);
1 row created.
SQL> insert into Empll values(2,'kumar',23,'male');
1 row created.
10 rows selected.
1. COUNT:
SQL> select count(*) from Empll;
COUNT(*)
-------------
10
SQL> select count(distinct emp_age)from Empll;
COUNT(DISTINCTEMP_AGE)
-----------------------------------
6
SQL> select count(emp_age) from Empll;
COUNT(EMP_AGE)
------------------------
10
SQL> select count(*) from Empll where employee_ID<5;
COUNT(*)
---------------
4
USING WHERE :
SQL> select count(*) from Empll where employee_ID between 5 and 9;
COUNT(*)
----------------
5
SQL> select count(*) from Empll where employee_ID not between 4 and 9;
COUNT(*)
---------------
4
GROUP BY :
SQL> select emp_age,count(*) from Empll group by emp_age;
EMP_AGE COUNT(*)
---------------- --------------
25 2
22 2
28 2
29 1
20 2
23 1
EMP_NAME COUNT(*)
----------------- ---------------
ram 1
kumar 1
ragu 1
sheetha 1
vishwa 1
hari 1
anjali 1
kesavan 1
anbu 1
vidhya 1
ORDER BY :
EMP_AGE COUNT(EMPLOYEE_ID)
----------------- --------------------------------
23 1
29 1
20 2
22 2
25 2
28 2
SQL> select emp_name,count(emp_age) from Empll group by emp_name order by
count(emp_age);
EMP_NAME COUNT(EMP_AGE)
--------------------- ---------------------------
ram 1
kumar 1
ragu 1
sheetha 1
vidhya 1
hari 1
anjali 1
kesavan 1
anbu 1
vishwa 1
HAVING CLAUSE :
SQL> select emp_age,count(*) from Empll group by emp_age having count(*)>1;
EMP_AGE COUNT(*)
----------------- --------------
25 2
22 2
28 2
20 2
SQL> select emp_age,count(*) from Empll group by emp_age having count(*)<=1;
EMP_AGE COUNT(*)
----------------- -------------
29 1
23 1
2. SUM :
SQL> select sum(emp_age) from Empll;
SUM(EMP_AGE)
-----------------------
242
SQL> select sum(employee_ID) from Empll;
SUM(EMPLOYEE_ID)
-------------------------------
55
USING WHERE :
SQL> select sum(emp_age) from Empll where employee_ID>=5;
SUM(EMP_AGE)
-----------------------
154
SQL> select sum(emp_age) from Empll where employee_ID<=5;
SUM(EMP_AGE)
-----------------------
113
GROUP BY:
SQL> select sum(emp_age) from Empll where employee_ID>3 group by emp_name;
SUM(EMP_AGE)
-----------------------
25
25
22
28
28
29
22
ORDER BY :
SQL> select emp_name,sum(emp_age) from Empll group by emp_name order by
count(employee_ID);
EMP_NAME SUM(EMP_AGE)
------------------ ------------------------
ram 20
kumar 23
ragu 25
sheetha 20
vidhya 22
hari 22
anjali 28
kesavan 28
anbu 29
vishwa 25
HAVING CLAUSE :
SQL> select employee_ID,sum(emp_age) from Empll group by employee_ID having
sum(emp_age)>=28;
EMPLOYEE_ID SUM(EMP_AGE)
---------------------- ------------------------
8 28
10 28
9 29
3. AVG :
SQL> select avg(emp_age) from Empll;
AVG(EMP_AGE)
-----------------------
24.2
SQL> select avg(employee_ID) from Empll;
AVG(EMPLOYEE_ID)
-------------------------------
5.5
USING WHERE :
SQL> select avg(emp_age) from Empll where employee_ID>6;
AVG(EMP_AGE)
-----------------------
26.75
AVG(EMP_AGE)
-----------------------
21
GROUP BY :
SQL> select avg(employee_ID) from Empll where emp_age>24 group by employee_ID;
AVG(EMPLOYEE_ID)
------------------------------
8
10
5
9
4
SQL> select avg(employee_ID) from Empll where emp_age<27 group by employee_ID;
AVG(EMPLOYEE_ID)
-----------------------------
1
3
6
5
7
2
4
ORDER BY :
SQL> select employee_ID,avg(emp_age) from Empll group by employee_ID order by
count(emp_age);
EMPLOYEE_ID AVG(EMP_AGE)
---------------------- -----------------------
1 20
3 20
6 22
8 28
4 25
5 25
7 22
9 29
2 23
10 28
HAVING CLAUSE :
SQL> select employee_ID,avg(employee_ID) from Empll group by employee_ID having
avg(emp_age)<24;
EMPLOYEE_ID AVG(EMPLOYEE_ID)
---------------------- ------------------------------
1 1
3 3
6 6
7 7
2 2
SQL> select employee_ID,avg(employee_ID) from Empll group by employee_ID having
avg(emp_age)>24;
EMPLOYEE_ID AVG(EMPLOYEE_ID)
---------------------- -------------------------------
8 8
10 10
5 5
9 9
4 4
4. MAX :
SQL> select max(employee_ID) from Empll;
MAX(EMPLOYEE_ID)
------------------------------
9
MAX(EMP_AGE)
------------------------
29
SQL> select max(employee_ID*emp_age) from Emplll;
MAX(EMPLOYEE_ID*EMP_AGE)
-----------------------------------------------
280
MAX(EMP_AGE)
-----------------------
29
SQL> select max(employee_ID) from Emplll where emp_age between 20 and 25;
MAX(EMPLOYEE_ID)
------------------------------
7
SQL> select max(employee_ID) from Emplll where emp_age not between 20 and 25;
MAX(EMPLOYEE_ID)
------------------------------
9
MAX(EMP_AGE)
-----------------------
25
5.MIN:
SQL> select min(employee_ID) from Empll;
MIN(EMPLOYEE_ID)
----------------------------
1
MIN(EMP_AGE)
---------------------
20
SQL> select min(emp_age) from Emplll where employee_ID>3;
MIN(EMP_AGE)
---------------------
22
SQL> select min(employee_ID) from Emplll where emp_age between 22 and 26;
MIN(EMPLOYEE_ID)
-----------------------------
2
SQL> select min(employee_ID) from Emplll where emp_age not between 22 and 26;
MIN(EMPLOYEE_ID)
-----------------------------
1
MIN(EMPLOYEE_ID)
-----------------------------
1
3
6
7
2
MIN(EMP_AGE)
----------------------
22
Conduct of Experiment(20)
Observation(10)
Record(10)
Viva(10)
Total(50)
RESULT:
Thus the result of Aggregate Functions using Group By,Order By and Having Clause for
Attendance Management System has been executed successfully.