求大神们解答 如何在Mysql 中 用出生日期来求几个人的平均年龄

求大神们解答 如何在Mysql 中 用出生日期来求几个人的平均年龄,第1张

select avg(A.年龄)

from

(select name as 姓名,(year(getdate())-year(出生日期)) as 年龄 from [表名] ) A

MySQL 的常见的聚合函数有 AVG、COUNT、SUM、MIN、MAX,上一小节介绍了 AVG、COUNT、SUM 三种聚合函数,本小节介绍如何使用 MIN、MAX 两种聚合函数,另外再介绍一下如何在 GROUP BY 中使用聚合函数。

以 teacher 表为例,先查所有 teacher 信息:

查询结果如下图

可以使用 MIN() 函数对结果集取年龄最小值的数据:

执行结果如下图:

以 student 表为例,先查看所有 student 信息:

查询结果如下图:

可以使用 MAX() 函数对结果集取年龄最大值的数据:

执行结果如下图:

以 student_course、course、student 表内连接查询为例:

查询结果如下图:

使用 AVG 函数取分组数据平均年龄:

执行结果如下图 :

可以使用 HAVING 对上述结果筛选,例如选出选课学生平均年龄大于 20 的课程数据:

执行结果如下图:

本小节介绍了如何使用 MIN、MAX 两种聚合函数对查询结果集进行筛选,还介绍了如何在 GROUP BY中分组使用聚合函数,并且使用 HAVING 后面的条件对分组数据进行筛选,需要注意的是聚合函数产生的数据列最好重命名,这是因为后端程序语言在处理这些数据时需要规范的字段名,例如:

查询结果如下图:

假设表student有如下字段:id,name,age,dormitory(宿舍号),语句可以如下写

select * from student where age>(

    select max(t.age) from (

        select avg(age) age from student group by dormitory

    ) t

)

这个语句是我随手写的,没经过数据库验证,你自己先看一下,需要修改的地方自己稍加改动就行,大致差不多这样的


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/7446527.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存