【问题标题】: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`
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-26
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-16
      • 2017-08-08
      • 2014-12-14
      相关资源
      最近更新 更多