假设我们有一个包含以下列的表 BNK_ACCT_GRP_ST:
Column Name ID Pk Null? Data Type
BNK_ACCT_GRP_ST_ID1 1 N NUMBER (15)
BNK_ACCT_ID 2 N NUMBER (15)
BNK_ACCT_GRP_ID 3 N NUMBER (15)
BNK_ACCT_GRP_ST_CD 4 N NUMBER (4)
BNK_ACGRP_ST_SRC_EVNT_TYP_CD 8 N NUMBER (4)
BNK_ACGRP_ST_SRC_TRAN_ID 9 N NUMBER (15)
FNCL_GRP_ID 10 N NUMBER (15)
CREN_DT 12 N DATE
LAST_UPD_DT 13 N DATE
PCSG_DT 14 N DATE
BNK_ACCT_GRP_ST_SEQ_NO 15 N NUMBER (15)
它填充了 bnk_accts 数据:
示例#1:
BNK_ACCT_GRP_ST_ID BNK_ACCT_ID BNK_ACCT_GRP_ID BNK_ACCT_GRP_ST_CD BNK_ACGRP_ST_SRC_EVNT_TYP_CD FNCL_GRP_ID BNK_ACCT_GRP_ST_SEQ_NO
2282 150627009 1724 4 150 111111111 2
2283 150627009 1440 2 149 111111112 1
1908 150627009 1725 2 134 111111111 1
1906 150627009 1441 2 135 111111111 7
和示例#2:
BNK_ACCT_GRP_ST_ID BNK_ACCT_ID BNK_ACCT_GRP_ID BNK_ACCT_GRP_ST_CD BNK_ACGRP_ST_SRC_EVNT_TYP_CD FNCL_GRP_ID BNK_ACCT_GRP_ST_SEQ_NO
2364 150275031 1435 2 114 133333333 3
2365 150275031 1436 7 116 133333333 2
1902 150275031 1435 1 72 133333333 2
1903 150275031 1435 2 36 133333333 1
1904 150275031 1436 5 74 133333333 1
在哪里:
- BNK_ACCT_GRP_ST_ID 是自增字段,
- BNK_ACCT_ID 实际上是银行账户#id,
- BNK_ACCT_GRP_ID 是 grp id(总是增加),
- BNK_ACCT_GRP_ST_CD、BNK_ACGRP_ST_SRC_EVNT_TYP_CD 和 BNK_ACGRP_ST_SRC_TRAN_ID 是一些用于反式目的的 id,
- FNCL_GRP_ID - 该银行账户所属银行机构的 ID
我需要什么:创建一个查询以根据 FNCL_GRP_ID 为每个 BNK_ACCT_ID 提取最新的 BNK_ACCT_GRP_ID。这里一个银行账户可以属于一个或多个然后一个 fncl 机构,所以查询应该返回这个输出:
例如#1:
FNCL_GRP_ID BNK_ACCT_ID BNK_ACCT_GRP_ID
111111111 150627009 1725
111111112 150627009 1440
例如#2:
FNCL_GRP_ID BNK_ACCT_ID BNK_ACCT_GRP_ID
133333333 150275031 1436
我最近尝试了很多东西,比如组合
(select distinct BNK_ACCT_ID,FNCL_GRP_ID) join to rank() over (partiton by )
但没有运气。