mysql - 如何找到具有特定天数的开始日期的每个用户的收入数量
问题描述
假设您有一个用户表,其中包含他们注册的日期。还有一张包含他们收入的表格,我们如何计算每个成员自从他们使用 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
推荐阅读
- php - MySQL,无效的日期时间格式:1366 不正确的整数值:“iRecipes”列的“”。“搜索”。“id”(php)
- c++ - 如何同时对两个或三个数组进行排序?
- c - 加速 for 循环,(动态)约束索引
- angular - 编写多个测试用例时,ActivatedRoute 参数在单元测试中不起作用
- curl - 我想卷曲,但它重定向到本地主机
- reactjs - React - 在生产文件中隐藏环境变量
- android-layout - Android项目按钮导航活动片段上边距
- c - 堆栈为节点数组
- python - Python猴子修补类方法导致多处理错误
- c# - 从 ASP.Net Core Web API 记录到 Eventlog 失败