MYSQL从中位数出生日期输出中位数年龄

时间:2017-08-09 11:09:50

标签: mysql database date median

我在数据库中找到了员工的中位年龄,但是我希望它能够返回年龄,而不是返回出生日期。所以基本上我希望它从当年减去员工的出生年份来获得一个年龄。 例如,我的结果显示为" 2000-01-01"其中id喜欢它显示为" 17"。我的代码如下:

 AdRequest adRequestInterstitial = new AdRequest.Builder().build();       

2 个答案:

答案 0 :(得分:0)

中位年龄应该是出生日期中位数的年龄,但这并不重要。您可以在没有光标的情况下计算中位数。这是一个使用变量的方法:

select avg(timestampdiff(year, bdate, curdate()) as median
from (select e.*, (@rn := @rn + 1) as rn
      from employee e cross join
           (select @rn := 0) params
      order by bdate
     ) e   -- after running this, @rn has the number of rows
where @rn in (2*rn - 1, 2*rn, 2*rn + 1);

答案 1 :(得分:0)

SET median = FLOOR(DATEDIFF(now(),FLOOR(current_age))/ 365);