首页 > 解决方案 > 如何将一个表中的每一行与另一个表中的列进行比较?

问题描述

我有如下表格。

表A(共3000行,end_date可能有重复,ex,123和223可能有相同的end_date)

enroll_dt,end_date, acct_nbr
12/31/2016, 01/03/2017, 123
12/31/2016, 01/04/2017, 234
01/05/2017, 02/02/2017, 334

表 B(共 30 个唯一值)

enroll_dt
12/31/2016
01/01/2017
01/02/2017
01/03/2017
01/04/2017
01/05/2017
...

所需表:

Date number_of_records
12/31/2016  2
01/01/2017 2
01/02/2017 2
01/03/2017 2
01/04/2017 1
02/01/2017 1

我想要做的是对于表 B 中的每个值,我将对表 A 中的所有行进行排序,并返回 # of acct_nbrif 直到 dateA 注册的帐户总数,有多少帐户 end_date>DateA。前任。对于01/01/2017表 B,number_of_records=2因为我们在 2017 年 1 月 1 日之前只注册了 2 个帐户(acct_nbr=123 和 234),并且 end_date'01/03/2017' 和 '01/04/2017' 都大于 '01/01 /2017'

非常感谢你的帮助

标签: sasteradataproc-sql

解决方案


假设您的日期存储为实际日期:

select
b.datea,
count(distinct a.acct_nbr)
from
b
inner join a
on a.end_date >= b.datea
group by 
1

推荐阅读