如何使用mysql根据id分组统计多个?
先来看一下常规的group by语句:
SELECT column_name, COUNT(column_name)
FROM table_name
GROUP BY column_name;
这样操作可以统计指定列的出现频次。如果大家需要统计多个指标,需要在SELECT语句中增加新的列名:
SELECT column_name1, COUNT(column_name1), SUM(column_name2)
FROM table_name
GROUP BY column_name1;
这里除了统计列名为column_name1的出现频次,还加入了列名为column_name2的求和操作。
如何在mysql中使用根据id分组统计多个?
大家现在有一份包含用户id、性别和年龄的用户信息表。需要统计每个性别和年龄段的用户数量和平均年龄:
SELECT gender,
CASE WHEN age BETWEEN 1 AND 20 THEN '1-20'
WHEN age BETWEEN 21 AND 30 THEN '21-30'
WHEN age BETWEEN 31 AND 40 THEN '31-40'
ELSE '40以上' END AS age_range,
COUNT(id) AS user_count,
AVG(age) AS avg_age
FROM user_info
GROUP BY gender, age_range;
使用CASE WHEN语句将年龄分类,再将gender和age_range用逗号隔开放入GROUP BY语句中,就可以实现根据id分组统计多个操作。