【问题标题】:MYSQL Workbench. How can I calculate age in sql (mysql workbench)? Then, find the ratio of age in databaseMYSQL 工作台。如何在 sql (mysql workbench) 中计算年龄?然后,在数据库中找到年龄的比例
【发布时间】:2021-02-24 02:12:55
【问题描述】:
这里是新手。
您好,我的任务是在数据库中查找年龄比例。我心想,我可能需要先计算年龄才能找出比例(我可能错了)。
基本上,我希望能够在数据库中找到用户的年龄和年龄的比例。
表结构如下
id | name | bday | country
2 | John | 1999-11-07 | Sweden
如何计算年龄,然后在数据库中找到年龄的比例?
谢谢
【问题讨论】:
标签:
mysql
sql
aggregate-functions
workbench
【解决方案1】:
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:Ratio
无论如何,请检查https://www.w3schools.com/sql/func_mysql_avg.asp 以找到平均值(然后你可以将它与另一个比较)
【解决方案2】:
我不确定您是否尝试在单个查询中完成此操作(年龄和比率),但这应该计算每个单独行的年龄:
SELECT id, name, country, TIMESTAMPDIFF(YEAR, bday, CURDATE()) AS age FROM `your_table`
将所有行的年龄相加,看起来像这样:
SELECT SUM(TIMESTAMPDIFF(YEAR, bday, CURDATE())) AS total_age FROM `your_table`
添加总行数
SELECT SUM(TIMESTAMPDIFF(YEAR, bday, CURDATE())) AS total_age, COUNT(id) AS total_users FROM `your_table`
这些结果应该为您提供计算该比率所需的总年龄和用户数量!