mysql学生表中统计学生中各个年龄段的人数 ,按照 18岁(不包含18)以下, 18到30岁(包含18包含30),30岁以上 来统计,学生表有学号姓名出生日期
时间: 2023-06-09 10:05:17 浏览: 222
学生基本信息成绩管理系统python tkinter+MySQL源码
5星 · 资源好评率100%
好的,根据您提供的信息,可以使用如下的 SQL 语句来实现您的要求:
SELECT
SUM(CASE WHEN TIMESTAMPDIFF(YEAR,birthdate,CURDATE())<18 THEN 1 ELSE 0 END) AS age_under_18_count,
SUM(CASE WHEN TIMESTAMPDIFF(YEAR,birthdate,CURDATE())>=18 AND TIMESTAMPDIFF(YEAR,birthdate,CURDATE())<=30 THEN 1 ELSE 0 END) AS age_between_18_and_30_count,
SUM(CASE WHEN TIMESTAMPDIFF(YEAR,birthdate,CURDATE())>30 THEN 1 ELSE 0 END) AS age_above_30_count
FROM
student;
该语句使用了三个 CASE WHEN 子句,分别判断学生的年龄属于哪个范围,并将相应的计数器加一。最后使用了 SUM 函数对所有学生进行了统计,输出三个计数值,即不到 18 岁的学生数、18 岁至 30 岁之间的学生数和超过 30 岁的学生数。希望这对您有所帮助。
阅读全文