0

我正在尝试使用这组 47 个命令创建一个表,并在第 24 行使用 ss.sample_size 值不断收到错误“00904. 00000 - “%s: invalid identifier”:

1 CREATE TABLE BN_NAM_CPB_SAMPLES AS
2 SELECT XXX_LINE_OF_BUSINESS,
3        XXX_COUNTRY,
4        CLIENT_CATEGORY,
5        RULE_1,
6        POPULATION_TYPE,
7        SAMPLE_SIZE,
8        PARTITION_ROWNUM,
9        ID,
10       UNIQUE_ID,
11       ACCT_INTRL_ID,
12       RANDOM_VALUE
13 FROM (SELECT ROW_NUMBER ()
14                  OVER (
15                     PARTITION BY A.XXX_LINE_OF_BUSINESS,16
16                                  A.XXX_COUNTRY,
17                                  A.CLIENT_CATEGORY,
18                                  A.RULE_1,
19                                  A.CPB_CUST_SGMT,
20                                  A.POPULATION_TYPE
21                     ORDER BY A.RANDOM_VALUE)
22                     AS PARTITION_ROWNUM,
23                  A.*,
24                  ss.sample_size
25             FROM (SELECT ROWNUM AS ID,
26                          A.*,
27                          DBMS_RANDOM.VALUE (0, 1) AS RANDOM_VALUE
28                     FROM (SELECT XXX_COUNTRY,
29                                  CLIENT_CATEGORY,
30                                  XXX_LINE_OF_BUSINESS,
31                                  UNIQUE_ID,
32                                  ACCT_INTRL_ID,
33                                  RULE_1,
34                                  CPB_CUST_SGMT,
35                                  POPULATION_TYPE
36                             FROM BN_CPB_POP_FOR_SAMPLING
37                           ) A) A
38                  INNER JOIN
39                  BN_CPB_SAMPLE_SIZES SS
40                    ON     A.XXX_COUNTRY = SS.XXX_COUNTRY
41                     AND A.CLIENT_CATEGORY = SS.CLIENT_CATEGORY
42                     AND A.POPULATION_TYPE = SS.POPULATION_TYPE
43                     AND A.XXX_LINE_OF_BUSINESS = SS.XXX_LINE_OF_BUSINESS
44                     AND A.RULE_1 = SS.RULE_1
45                     AND A.CPB_CUST_SGMT = SS.CPB_CUST_SGMT
46                     ) B
47    WHERE B.PARTITION_ROWNUM <= B.SAMPLE_SIZE;

BN_CPB_SAMPLE_SIZES 表是在上一步中使用以下查询创建的:

48 CREATE TABLE BN_CPB_SAMPLE_SIZES AS
49 SELECT                     XXX_LINE_OF_BUSINESS,
50                            XXX_COUNTRY,
51                            CLIENT_CATEGORY,
52                            CPB_CUST_SGMT,
53                            RULE_1,
54                            POPULATION_TYPE,
55                            UNIQUE_ID,
56                            ACCT_INTRL_ID
57                         FROM BN_CPB_POP_FOR_SAMPLING;
4

0 回答 0