SQL GROUP BY Statement
Aggregate functions often need an added GROUP BY
statement.
The GROUP BY Statement
The
GROUP BY statement is used in conjunction with the aggregate functions to group
the result-set by one or more columns.
SQL GROUP BY Syntax
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name |
SQL GROUP BY Example
We have the following "Orders" table:
O_Id |
OrderDate |
OrderPrice |
Customer |
1 |
2008/11/12 |
1000 |
Hansen |
2 |
2008/10/23 |
1600 |
Nilsen |
3 |
2008/09/02 |
700 |
Hansen |
4 |
2008/09/03 |
300 |
Hansen |
5 |
2008/08/30 |
2000 |
Jensen |
6 |
2008/10/04 |
100 |
Nilsen |
Now we want to find the total sum (total order) of each customer.
We will have to use the GROUP BY statement to group the customers.
We use
the following SQL
statement:
SELECT Customer,SUM(OrderPrice) FROM Orders
GROUP BY Customer |
The result-set will look like this:
Customer |
SUM(OrderPrice) |
Hansen |
2000 |
Nilsen |
1700 |
Jensen |
2000 |
Nice! Isn't it? :)
Let's see what happens if we omit the GROUP BY statement:
SELECT Customer,SUM(OrderPrice) FROM Orders
|
The result-set will look like this:
Customer |
SUM(OrderPrice) |
Hansen |
5700 |
Nilsen |
5700 |
Hansen |
5700 |
Hansen |
5700 |
Jensen |
5700 |
Nilsen |
5700 |
The result-set above is not what we wanted.
Explanation of why the above SELECT statement cannot be used: The
SELECT statement above has two columns specified (Customer and SUM(OrderPrice).
The "SUM(OrderPrice)" returns a single value (that is the total sum of
the "OrderPrice" column), while "Customer" returns 6 values
(one value for each row in the "Orders" table). This will therefore
not give us the correct result. However, you have seen that the GROUP BY statement solves this problem.
GROUP BY More Than One Column
We can also use the GROUP BY statement on more than one column, like this:
SELECT Customer,OrderDate,SUM(OrderPrice) FROM Orders
GROUP BY Customer,OrderDate
|
Learn how your website performs under various load conditions
|
|
WAPT
is a load, stress and performance testing tool for websites and web-based applications.
In contrast to "800-pound gorilla" load testing tools, it is designed to minimize the learning
curve and give you an ability to create a heavy load from a regular workstation.
WAPT is able to generate up to 3000 simultaneously acting virtual users using standard hardware configuration.
Virtual users in each profile are fully customizable. Basic and NTLM authentication methods are supported.
Graphs and reports are shown in real-time at different levels of detail, thus helping to manage the testing process.
Download the free 30-day trial!
|
|