Mysql出生日期转换为年龄并分组统计人数的方法示

2023年 4月 30日 48.0k 0

查询数据库 SELECT * FROM `student` 查询结果 id name birthday 1 张三 1970-10-01 2 李四 1990-10-01 3 王五 2002-10-01 4 马六 2003-10-01 转换为年龄的查询语句,使用函数TIMESTAMPDIFF SELECT id, name, birthday, TIME

查询数据库

SELECT * FROM `student`

查询结果

id
name
birthday

1 张三 1970-10-01 2 李四 1990-10-01 3 王五 2002-10-01 4 马六 2003-10-01

转换为年龄的查询语句,使用函数TIMESTAMPDIFF

SELECT id, name, birthday, TIMESTAMPDIFF(YEAR,student.birthday,CURDATE()) as age FROM `student`

查询结果

d
name
birthady
age

1 张三 1970-10-01 50 2 李四 1990-10-01 30 3 王五 2002-10-01 18 4 马六 2003-10-01 17

然后按照年龄段进行分组

SELECT
GROUP_CONCAT(a.id) as ids,
GROUP_CONCAT(a.name) as names,
CASE
WHEN a.age<18 THEN '少年'
WHEN a.age>=18 AND a.age< 40 THEN '青年'
WHEN a.age>=40 AND a.age< 60 THEN '中年'
END as age,
count(a.id) as count
FROM
(SELECT id, name, birthday, TIMESTAMPDIFF(YEAR,student.birthday,CURDATE()) as age FROM `student`) as a
GROUP BY
CASE
WHEN a.age<18 THEN '少年'
WHEN a.age>=18 AND a.age< 40 THEN '青年'
WHEN a.age>=40 AND a.age< 60 THEN '中年'
END

查询结果

ids
names
age
count

1 张三 中年 1 4 马六 少年 1 2,3 李四,王五 青年 2

tips:当前时间是2020年

总结

到此这篇关于Mysql出生日期转换为年龄并分组统计人数的文章就介绍到这了,更多相关Mysql出生日期转年龄并分组统计内容请搜索每日运维以前的文章或继续浏览下面的相关文章希望大家以后多多支持每日运维!

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论