Logic of "group by


If you use any aggregate function, and also wants to display another column along size it, you must use "GROUP by"


select char_length(city) as citynamesize,city from station group by city order by citynamesize DESC;



21 Marine On Saint Croix 
18 West Baden Springs 
17 Frankfort Heights 
3 Roy 
3 Lee 




SELECT count(CustomerID), CustomerName,City FROM Customers where CustomerName Like '%Ho%' Group by City ;

If you run below querry, it will give 7 in count column, because it's illogical, you can find the people/row, whos names contains "Ho", but against what, you cant display 7|Hosa ?

SELECT count(CustomerID), CustomerName FROM Customers where CustomerName Like '%Ho%';

So that's why it should be more meaningful, like display the names and count of people, whos name contains "Ho" per city,
So against each city, you will find count of people. whos name starts with "Ho" but again displaying names doesn't make sense, if you sane two person in Dlehi, with name "Hosa,Hola", what you will display in name coulum ?




count(CustomerID)CustomerNameCity
1Chop-suey ChineseBern
1Rancho grandeBuenos Aires
1Gourmet LanchonetesCampinas
1Princesa Isabel VinhossLisboa
2Consolidated HoldingsLondon
1Let's Stop N ShopSan Francisco

Comments

Popular posts from this blog

Oracle User vs Oracle Schemas

Having and Where Clause