问题描述
新手在这里。
您好,我受命在数据库中查找年龄比例。我心想,我可能需要计算出年龄再找出比率(我可能是错的)。
表结构如下
id | name | bday | country
2 | John | 1999-11-07 | Sweden
如何计算年龄,然后在数据库中找到年龄比例?
谢谢
解决方法
SELECT YEAR(CURDATE()) -YEAR(bday)
-- YEAR DIFFERENCE
- IF(DATE_ADD(bday,INTERVAL (YEAR(CURDATE()) - YEAR(bday)) YEAR) > CURDATE(),1,0)
-- -1 if the birthday hasn't happend yet
AS age FROM users
这是找到年龄的方法
比率是一个比较,因此您需要一个基值来进行1:比率 无论如何,请检查https://www.w3schools.com/sql/func_mysql_avg.asp以便找到平均值(然后您可以将其与另一个平均值进行比较)
,我不确定您是否要在单个查询(年龄和比率)中完成此操作,但这应该计算出每一行的年龄:
SELECT id,name,country,TIMESTAMPDIFF(YEAR,bday,CURDATE()) AS age FROM `your_table`
将所有行的年龄加在一起,看起来像这样:
SELECT SUM(TIMESTAMPDIFF(YEAR,CURDATE())) AS total_age FROM `your_table`
添加总行数
SELECT SUM(TIMESTAMPDIFF(YEAR,CURDATE())) AS total_age,COUNT(id) AS total_users FROM `your_table`
这些结果将为您提供计算该比率所需的总年龄和用户数量!