gpt4 book ai didi

mysql求和字段的值,根据其他字段限制

转载 作者:行者123 更新时间:2023-11-29 19:11:31 24 4
gpt4 key购买 nike

我有一个生日和日期的表,每个新的一天都会为所有生日添加一条新记录,年龄是(日期减去生日)。另外,每一个新的日期,都会在同一天创建一个新的生日,年龄为 0。下表是一个示例:

Age | BirthDay     | Date         | Users
---------------------------------------------
0 | 2017-01-01 | 2017-01-01 | 100
1 | 2017-01-01 | 2017-01-02 | 70
2 | 2017-01-01 | 2017-01-03 | 50
0 | 2017-01-02 | 2017-01-02 | 40
1 | 2017-01-02 | 2017-01-03 | 10
0 | 2017-01-03 | 2017-01-03 | 50

现在,我想知道到达该日期的每个生日的 0 岁用户总数,按年龄分组。

结果:

Age | Age0Sum
--------------
0 | 190
1 | 140
2 | 100

说明:

  • 年龄 0 -> 所有生日在第 0 天都有值,因此 Age0Sum 是 Age=0 用户数量的总和 => 100 + 40 + 50

  • 年龄 1 -> 生日 2017-01-01 + 2017-01-02 已达到 1 岁,因此 Age0Sum 将是他们的用户数量,其中第 0 天 => 100 + 40

  • 年龄 2 -> 只有一个生日日期 (2017-01-01) 达到了 2 岁,因此他们的 Age0Sum 将仅为该生日年龄 0 => 100 的用户

我已经尝试了很多事情,现在尝试更多,但没有找到具体的解决方案或正确的方法。

感谢您的帮助。

最佳答案

假设表名称是 UsersTable。

SELECT 
u1.Age,
SUM(u2.Users)
FROM
UsersTable AS ut1
JOIN
(SELECT
BirthDay, Users
FROM
UsersTable
WHERE
Age = 0) AS ut2 ON ut1.BirthDay = ut2.BirthDay
GROUP BY Age
ORDER BY Age;

内部选择将获取年龄 = 0 时每个生日的用户数量。然后,与它的连接将获取达到该组年龄的所有记录,并对之前选择的年龄进行求和。

关于mysql求和字段的值,根据其他字段限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43045826/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com