使用months_between()的平均年龄

时间:2016-05-23 20:04:37

标签: sql oracle

所以我有一张有出生日期的表格,我需要平均人们的年龄。我怎么做?我知道我必须使用months_between()。提前谢谢!

1 个答案:

答案 0 :(得分:0)

为什么您认为自己需要months_between?你没有(除非你有一个非常具体和不寻常的定义"平均年龄")。

在足够长的时间内(例如40多年),可以计算一个人的年龄(在狭窄的近似窗口内)作为以天为单位的年龄除以365.25。以天为单位的年龄只是两个日期SYSDATEDATE_OF_BIRTHBORN之间的差异。第一个由系统提供,第二个在您的表中。假设,那就是你想要今天的年龄;否则将SYSDATE改为" as-of" (固定)您想要使用的日期。

所以,像

select [some columns here], AVG(SYSDATE - BORN)/365.25 as avg_age
from   your_table

不清楚为什么要从max(born)中选择dual;你肯定没有给你的表dual打电话?您是否也没有更改标准dual表格来添加自己的数据?

当人们询问您在表格中使用born的数据类型时,在查询时在屏幕上看到的内容是不够的;屏幕将显示一个字符串(它是屏幕显示的唯一内容)并且不一定反映数据库中的内容。要获得正确答案,请运行DESCRIBE table_name;这将显示table_name中的所有列及其数据类型。请注意,DESCRIBE table_name是一个SQL * Plus命令(Toad和SQL Developer可以理解 - 无论您使用什么来与数据库通信),因此它不需要;或{{1 }} 在末尾。只需在提示符下输入,然后点击/

祝你好运!

相关问题