Basic Syntax
Aggregate Functions
| Function | Description |
|---|---|
COUNT(*) | Count rows |
SUM(column) | Sum values |
AVG(column) | Average value |
MIN(column) | Minimum value |
MAX(column) | Maximum value |
Count by Group
| Database | Output |
|---|---|
| PostgreSQL | SELECT status, COUNT(*) FROM users GROUP BY status |
| MongoDB | db.users.aggregate([{ $group: { _id: '$status', count: { $sum: 1 } } }]) |
Sum by Group
| Database | Output |
|---|---|
| PostgreSQL | SELECT status, SUM(amount) FROM orders GROUP BY status |
| MongoDB | db.orders.aggregate([{ $group: { _id: '$status', total: { $sum: '$amount' } } }]) |
Average by Group
| Database | Output |
|---|---|
| PostgreSQL | SELECT category, AVG(price) FROM products GROUP BY category |
Min/Max by Group
Multiple Columns with GET WITH
For multiple columns with aggregates (except COUNT):| Database | Output |
|---|---|
| PostgreSQL | SELECT status, SUM(amount) AS total FROM orders GROUP BY status |
Group by Multiple Columns
| Database | Output |
|---|---|
| PostgreSQL | SELECT status, user_id, SUM(amount) FROM orders GROUP BY status, user_id |
HAVING Clause
Filter groups after aggregation.| Database | Output |
|---|---|
| PostgreSQL | SELECT status, COUNT(*) FROM users GROUP BY status HAVING COUNT(*) > 10 |
WHERE vs HAVING
WHEREfilters rows before groupingHAVINGfilters groups after aggregation

