Aggregating Data
Aggregate functions calculate values across multiple rows.
cursor.execute("SELECT COUNT(*) FROM users")
print(cursor.fetchone()[0]) # Total number of users
cursor.execute("SELECT AVG(age) FROM users")
print(cursor.fetchone()[0]) # Average age
Common aggregates:
COUNT()- number of rowsSUM()- total of valuesAVG()- average valueMIN(),MAX()- smallest/largest value
Group results with GROUP BY:
cursor.execute("""
SELECT city, COUNT(*) as user_count
FROM users
GROUP BY city
""")
This counts users per city. Add HAVING to filter groups:
cursor.execute("""
SELECT city, COUNT(*) as user_count
FROM users
GROUP BY city
HAVING user_count > 10
""")
I explain aggregation patterns in my SQL with Python course.