我需要在具有name
和age
的表中找到10岁年龄段中发生最多的事件,该年龄段可以是2至22岁,15至25岁,10至20岁等。
我创建了返回平均年龄的SQL:
SELECT age, count(age)
FROM member
GROUP BY age
ORDER BY COUNT(age) DESC
LIMIT 1
谢谢你的帮助!
最佳答案
创建另一个表ages
来保存您感兴趣的年龄范围,其中包含age_lower
,age_upper
和显示名称age_range
的字段,例如'2到22'。
使用WHERE
子句将表连接起来,该子句将年龄设置在上限和下限之间。
SELECT `age_range`, COUNT(`age`) AS age_count
FROM `member` INNER JOIN `ages`
ON age BETWEEN age_lower AND age_upper
GROUP BY age_range
ORDER BY COUNT(`age`) DESC, `age_range` ASC
SQL Fiddle
关于mysql - 查找跨年龄段的平均年龄范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41175747/