SQL Aggregate Functions Where Clause
SQL Aggregate Functions Where Clause return you the aggregate sum of the records based on the condition specified in Where Clause condition. The Aggregate Function include Sum , Count, Max, Min and Average.
Understand with Example
The Tutorial illustrate an example from 'SQL Aggregate Functions Where Clause'. To understand and grasp the example we start with a table 'stu'. The create table keywords helps you to create a table Stu with given fieldnames and datatypes respectively.
Create Table Stu:
create table Stu(Id varchar(2), Name varchar(15), Class varchar(10),sub_id varchar(2),marks varchar(3)); |
Insert Data into Stu:
The insert into is used to add the records or rows values to the table 'Stu'.
insert into Stu values(1,'Komal',10,1,45); insert into Stu values(2,'Ajay',10,1,56); insert into Stu values(3,'Rakesh',10,1,67); insert into Stu values(1,'Komal',10,2,47); insert into Stu values(2,'Ajay',10,2,53); insert into Stu values(3,'Rakesh',10,2,57); insert into Stu values(1,'Komal',10,3,45); insert into Stu values(2,'Ajay',10,3,56); insert into Stu values(3,'Rakesh',10,3,67); insert into Stu values(1,'Komal',10,4,65); insert into Stu values(2,'Ajay',10,4,56); insert into Stu values(3,'Rakesh',10,4,37); insert into Stu values(1,'Komal',10,5,65); insert into Stu values(2,'Ajay',10,5,46); insert into Stu values(3,'Rakesh',10,5,63); |
Stu
+--------+----------+-----------+--------+-------+ | Id | Name | Class | sub_id | marks | +--------+----------+-----------+--------+-------+ | 1 | Komal | 10 | 1 | 45 | | 2 | Ajay | 10 | 1 | 56 | | 3 | Rakesh | 10 | 1 | 67 | | 1 | Komal | 10 | 2 | 47 | | 2 | Ajay | 10 | 2 | 53 | | 3 | Rakesh | 10 | 2 | 57 | | 1 | Komal | 10 | 3 | 45 | | 2 | Ajay | 10 | 3 | 56 | | 3 | Rakesh | 10 | 3 | 67 | | 1 | Komal | 10 | 4 | 65 | | 2 | Ajay | 10 | 4 | 56 | | 3 | Rakesh | 10 | 4 | 37 | | 1 | Komal | 10 | 5 | 65 | | 2 | Ajay | 10 | 5 | 46 | | 3 | Rakesh | 10 | 5 | 63 | +--------+----------+-----------+--------+-------+ |
Query:
The Query return the records that include id, name and sum of the marks as total marks from the name specified in Where Clause of table 'stu'.
select id, name, sum(marks) as 'total marks' from stu where name in('komal','ajay','santosh','rakesh') group by id; |
Result
+------+--------+-------------+ | id | name | total marks | +------+--------+-------------+ | 1 | Komal | 267 | | 2 | Ajay | 267 | | 3 | Rakesh | 291 | +------+--------+-------------+ |