Thursday, July 21, 2011

Group By VS Distinct in SQL


Group by VS Distinct

Group By : The SQL GROUP BY statement is used together with the SQL aggregate functions to group the retrieved data by one or more columns. 
Distinct : The DISTINCT keyword can be used to return only distinct (different) values.

Orders table :
OrderId
PersonName
Price
Quantity
101
John
12
1
102
Sam
4
1
103
John
14
2
104
Brendon
12
1
106
Allen
2
11
107
Allen
3
11

Query 1: Select PersonName,Price from Orders group by PersonName,Price
Query 2:Select distinct PersonName,Price from Orders

Execution plan for both queries are same and return 5 records.

But the purpose of Group by is different it is used to group the records and apply aggregate function on it.

Query 3: Select PersonName,Sum(Price) as ‘Total’ from Orders group by PersonName

Query 3 returns only for records like below
PersonName
Total
Allen
5
Brendon
12
John
26
Sam
4

No comments:

Post a Comment