Single-level aggregation
The simplest GROUP BY queries aggregate data at a single level.
The simplest GROUP BY
queries aggregate data at a single level. For example, a table might contain the following information about family expenses:
-
Category
-
Amount spent on that category during the year
-
Year
Table data might look like this:
=> SELECT * FROM expenses ORDER BY Category;
Year | Category | Amount
------+------------+--------
2005 | Books | 39.98
2007 | Books | 29.99
2008 | Books | 29.99
2006 | Electrical | 109.99
2005 | Electrical | 109.99
2007 | Electrical | 229.98
You can use aggregate functions to get the total expenses per category or per year:
=> SELECT SUM(Amount), Category FROM expenses GROUP BY Category;
SUM | Category
---------+------------
99.96 | Books
449.96 | Electrical
=> SELECT SUM(Amount), Year FROM expenses GROUP BY Year;
SUM | Year
--------+------
149.97 | 2005
109.99 | 2006
29.99 | 2008
259.97 | 2007