Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 我需要找到从出生那天起学生的最低和平均年龄_Sql_Ms Access_Average_Date Of Birth - Fatal编程技术网

Sql 我需要找到从出生那天起学生的最低和平均年龄

Sql 我需要找到从出生那天起学生的最低和平均年龄,sql,ms-access,average,date-of-birth,Sql,Ms Access,Average,Date Of Birth,我有一个表'Students',其中包含学生的'DateOfBirth'。我需要一个SQL语句,我可以在查询中使用该语句将平均值和最小年龄作为具有这些名称的字段?我不想添加年龄字段,我只想要一个可以复制和粘贴的SQL语句,它将返回我需要的内容 SELECT MIN(DateOfBirth) AS Min Age, AVG(DateOfBirth) AS Avg Age FROM Students; 目前,我发现的所有建议都要求我在运行时指定一个值,我不知道为什么?使用聚合函数AVG和MIN。

我有一个表
'Students'
,其中包含学生的
'DateOfBirth'
。我需要一个
SQL语句
,我可以在查询中使用该语句将
平均值
最小年龄
作为具有这些名称的字段?我不想添加年龄字段,我只想要一个可以复制和粘贴的SQL语句,它将返回我需要的内容

 SELECT MIN(DateOfBirth) AS Min Age, AVG(DateOfBirth) AS Avg Age FROM Students;

目前,我发现的所有建议都要求我在运行时指定一个值,我不知道为什么?

使用聚合函数AVG和MIN。。顺便说一句,你可以很容易地在谷歌上搜索它…要计算年龄,你可以使用getDate函数并计算年龄-取决于列DateOfBirth的格式

SELECT *
FROM Students
GROUP BY DateOfBirth
ORDER BY DateOfBirth DESC


SELECT MIN(DateOfBirth) AS MinAges
FROM Students


SELECT AVG(DateOfBirth) AS AverageAges
FROM Students
  select AVG((getDate()-DateOfBirth)/365) as avgAge , 
   MIN ((getDate()-DateOfBirth)/365) as minAge 
  from Students

您应该首先从出生日期计算年龄,然后找到平均年龄

Select AVG(Datediff("yyyy",DateOfBirth,getdate())) as AVGage from Students
Select MIN(Datediff("yyyy",DateOfBirth,getdate())) as MINage from Students
您还可以在一次查询中计算平均值、最小值

 Select AVG(Datediff("yyyy",DateOfBirth,getdate())) as AVGage , 
        MIN(Datediff("yyyy",DateOfBirth,getdate())) as MINage
        from Students
对于MS访问数据库:

  • Now()提供日期和时间
  • Date()提供日期
  • Time()提供时间
可以使用Date()函数

 Select AVG(Datediff("yyyy",DateOfBirth,DATE())) as AVGage , 
        MIN(Datediff("yyyy",DateOfBirth,DATE())) as MINage
        from Students

这里是

分组依据,以及聚合函数AVG和MIN!你能帮我写下来吗,因为我对数据库完全陌生。我可以让min工作,但avg不工作。它给出了一个像16539.02感恩节的数字,你至少需要付出一些努力。(你还将如何学习?);这就是我所用的,但正如我所说的,平均年龄是以千年为单位的,“出生日期”不是年龄。。所以ofc-only聚合函数将不起作用也许您应该指定它是哪个dbms?(因为getDate()是特定于产品的。)使用此函数时,我会弹出一个“undefined function getgate”。我该如何克服这个问题呢?好吧,正如jarlh所说,你使用的是什么数据库管理系统?这适用于使用Access SQL的ssqlim。我的出生日期是短日期格式。当使用此格式时,它表示order by子句中有错误,并突出显示第一个selectgetdate不存在recognised@jamesphillips请看我的答案。。如果您使用的是ms access数据库,则可以使用
Date()
函数代替
getdate()
。此功能有效,但在运行时要求我指定一个值!为什么它不把表给我?@jamesphillips我不明白你在执行过程中指定了什么值。?你说的
是什么意思?为什么不把表格给我?请解释为“我复制并粘贴您的语句到查询中,然后运行查询”。运行查询时,我看到一个框,上面写着“指定参数值”。我运行的每一个查询都会打开一个表,向我提供我所要求的数据。这就是我想要的。我只需要表格弹出两个字段。平均年龄和最低年龄,计算年龄低于平均年龄和最低年龄