MYSQL工作台如何在SQLMySQL Workbench中计算年龄?然后,在数据库中找到年龄比例

问题描述

新手在这里

您好,我受命在数据库中查找年龄比例。我心想,我可能需要计算出年龄再找出比率(我可能是错的)。

基本上,我希望能够找到用户的年龄以及数据库中的年龄比例。

表结构如下

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`

这些结果将为您提供计算该比率所需的总年龄和用户数量!