mysql - 如何查找开始日期在特定天数内每个用户的收入数量

标签 mysql inner-join

假设您有一个用户表,其中包含他们的注册日期。 另一张表显示了他们的收入 我们如何计算每个成员(member)自使用 mySQL 命令注册以来 6 个月或 9 个月的收入金额?

表 1 有 2 列:1. user_id 2. date_of_join 表 2 有 4 列:1.purchase_id 2.user_id 3.purchase_amount 4.purchase_date。

我想做这样的事情

SELECT Users.user_id, AVG(Purchases.purchase_amount)
FROM Users
INNER JOIN Purchases
WHERE MONTH(Users.date_of_join) = 06
AND AVG(Purchases.purchase_amount) BETWEEN Users.date_of_join AND DATE_ADD(date_of_join, INTERVAL 30);

最佳答案

您需要总收入还是每次购买的平均收入?

如果您只需要总计,那么您可以尝试这样的操作 -

SELECT U.USER_ID, SUM(PURCHASES.PURCHASE_AMOUNT)
  FROM USERS U
 INNER JOIN PURCHASES P
    ON U.USER_ID = P.USER_ID
 WHERE P.PURCHASE_DATE >= U.DATE_OF_JOIN
   AND P.PURCHASE_DATE < DATE_ADD(U.DATE_OF_JOIN, INTERVAL 6 MONTH)
 GROUP BY U.USER_ID;

对于平均值,只需将 SUM 替换为 AVG

关于mysql - 如何查找开始日期在特定天数内每个用户的收入数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52239176/

相关文章:

mysql - 是否有命令将我的数据库保存到文件夹?

MySQL 内连接更改列值

sql - 带有 order by 和 where 子句的内连接

mysql - 多个INNER JOIN子查询sql

mysql - 学说模式更新总是要求约束和索引

PHP mySQL - 在同一天显示多个游戏/事件

php - 如何根据相关表的结果选择 MySQL 记录?

php - 使用 ENGINE 子句在迁移中创建表失败

SQL - 获得最大结果

sql - 帮助限制内部连接