首页 > 解决方案 > 如何找到具有特定天数的开始日期的每个用户的收入数量

问题描述

假设您有一个用户表,其中包含他们注册的日期。还有一张包含他们收入的表格,我们如何计算每个成员自从他们使用 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);

标签: mysqlinner-join

解决方案


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

如果你只需要总计,那么你可以尝试这样的事情 -

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;

平均而言,只需替换SUMAVG


推荐阅读