我需要在具有nameage的表中找到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_lowerage_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/

10-16 06:42