我正在尝试为我们的某个数据库中的客户编制一些终身价值信息。
我们有一个MS SQL Server数据库,用于存储我们所有的客户/交易信息。
我的问题是我在MS SQL Server(或一般的SQL)方面没有太多经验 - 我希望能够针对提取AVG贷款数量的数据库运行查询,并且AVG收入基于三个标准:
1。)如果贷款被“核准”,则计算贷款 2.)如果第一笔贷款(首先由date_created字段标识)在某个'mm / yyyy'之后或之后,则只计算来自customer_id的贷款 3.)我能够指定在第一个“mm / yyyy”之后多少个月来计算AVG中包含的贷款/收入数量
这是数据库的样子:
customer_id | loan_status | date_created | revenue
111 | 'approved' | 2010-06-20 17:17:09 | 100.00
222 | 'approved' | 2010-06-21 09:54:43 | 255.12
333 | 'denied' | 2011-06-21 12:47:30 | NULL
333 | 'approved' | 2011-06-21 12:47:20 | 56.87
222 | 'denied' | 2011-06-21 09:54:48 | NULL
222 | 'approved' | 2011-06-21 09:54:18 | 50.00
111 | 'approved' | 2011-06-20 17:17:23 | 100.00
... loads' of records ...
555 | 'approved' | 2012-01-02 09:08:42 | 24.70
111 | 'denied' | 2012-01-05 02:10:36 | NULL
666 | 'denied' | 2012-02-05 03:31:16 | NULL
555 | 'approved' | 2012-02-17 09:32:26 | 197.10
777 | 'approved' | 2012-04-03 18:28:45 | 300.50
777 | 'approved' | 2012-06-28 02:42:01 | 201.80
555 | 'approved' | 2012-06-21 22:16:59 | 10.00
666 | 'approved' | 2012-09-30 01:17:20 | 50.00
如果我想查找平均交易次数(已批准的交易),以及所有第一次贷款的客户在2012-01之后/之后的每个已批准交易的平均收入,以及期间为4几个月后,我将如何查询数据库?
非常感谢任何帮助。
答案 0 :(得分:0)
您可以先计算最低贷款日期:
从表t中选择customer_id,min(date_created),其中loan_status ='approved'group by customer_id
然后你可以加入它:
select customer_id, count(date_created), avg(revenue) from table t
join (
select customer_id, min(date_created) as min_date from table t where loan_status = 'approved' group by customer_id ) s
on t.customer_id = s.customer_id
where t.date_created between s.min_date and DATEADD(month, 4, s.min_date) and t.loan_status = 'approved'
答案 1 :(得分:0)
将tbl
重命名为您的表名。
以 YYYYMMDD
格式指定日期。
select customer_id, AVG(revenue) average_revenue
from
(
select customer_id
from tbl
group by customer_id
having min(date_created) >= '20120101'
) fl
join tbl t on t.customer_id = fl.customer_id
where t.loan_status = 'approved'
and date_created < '20120501' -- NOT including May the first, so Jan through Apr (4 months)
如果您的意思是每个客户的第一笔贷款后4个月,请给我留言,说明是4个日历月(例如15日至5月15日)还是直到第4个月的最后一天(1月15日至4月30日),我会更新答案。