IBM大型机论坛索引
 
 登录
 
IBM大型机论坛索引 大型机:搜索 IBM Mainframe论坛:常见问题解答  寄存器
 

分割行数和聚合分组集结果


IBM大型机论坛 -> DB2
 发表新话题     回复主题
查看上一个主题 :: 查看下一个主题  
作者 信息
奥林

新的用户


已加入:2006年1月11日
帖子:67
所在地:下萨克森州(DE)

 发布 发表于:星期三十一月06,2019 2:46上午
引用回复

嗨,您好,

再次,我尝试检查我们的表中一些相似的列及其相关性。
在子查询中对分组集进行计数后,我尝试对结果行(“ lfd_nr”)进行编号,并通过对结果进行分区(每个分组集一个窗口)来累计计数的数字(“ anzahl” /“ anz_kum”)。

码:
选择          ROW_NUMBER()
                OVER (通过b.cols_flag进行分区
                      ORDER     BY b.cols_flag ASC
                                 , b.col_alpha
                                 , b.col_bravo
                                 , b.col_charlie   )
                                                  ldf_nr
           ,    b.cols_flag
           ,    b.col_alpha
           ,    b.col_bravo
           ,    b.col_charlie
           ,    安扎尔
           ,    SUM(b.anzahl)
                OVER (通过b.cols_flag进行分区
                      ORDER     BY b.cols_flag ASC
                                 , b.col_alpha
                                 , b.col_bravo
                                 , b.col_charlie
                     行未绑定前         )
                                                  anz_kum
  FROM (SELECT          a.col_alpha
                   ,    a.col_bravo
                   ,    a.col_charlie
                   ,    a.anzahl
                   ,    DECODE(a.col_alpha  , NULLIF('{}', '{}'), 'X', ' ')
                      ||DECODE(a.col_bravo  , NULLIF('{}', '{}'), 'X', ' ')
                      ||DECODE(a.col_charlie,NULLIF('{}', '{}'), 'X', ' ')
                          cols_flag
          FROM (SELECT          col_alpha
                           ,    col_bravo
                           ,    col_charlie
                           ,    COUNT(*)          anzahl
                  FROM my_table
                 按分组集分组
                          (  (  col_alpha  )
                           , (  col_bravo  )
                           , (  col_charlie))
               )                                  a
       )                                          b

  WITH UR
;


我对一个和两个子查询做了几次尝试,但是都没有成功。无论我尝试了什么,Windows分区子句都无法正常工作。
因此,下表显示了我得到的结果以及我仍然希望得到的结果。

码:
LDF_NR    LDF_NR     COLS_FLAG  COL_ALPHA  COL_BRAVO  COL_CHARLIE  ANZAHL  ANZ_KUM   ANZ_KUM
(result)  (desired)                                                        (result)  (desired)
--------  ---------  ---------  ---------  ---------  -----------  ------  --------  ---------
       1          1   XX                   {}         {}               70        70         70
       2          2   XX        111        {}         {}             7552      7622       7622
       3          3   XX        AAA        {}         {}              245      7867       7867
       4          4   XX        ___        {}         {}               92      7959       7959
       5          1  X X        {}         0009       {}             5722     13681       5722
       6          2  X X        {}         0010       {}              246     13927       5968
       7          3  X X        {}         0024       {}              115     14042       6083
       8          4  X X        {}         0059       {}               91     14133       6174
       9          5  X X        {}         0072       {}               67     14200       6241
      10          6  X X        {}         0155       {}               29     14229       6270
      11          7  X X        {}         0172       {}                7     14236       6277
      12          8  X X        {}         0227       {}                5     14241       6282
      13          9  X X        {}         0230       {}              557     14798       6839
      14         10  X X        {}         0306       {}              216     15014       7055
      15         11  X X        {}         0309       {}               26     15040       7081
      16         12  X X        {}         0340       {}                1     15041       7082
      17         13  X X        {}         0384       {}              135     15176       7217
      18         14  X X        {}         0404       {}                3     15179       7220
      19         15  X X        {}         0409       {}                3     15182       7223
      20         16  X X        {}         0414       {}               10     15192       7233
      21         17  X X        {}         0439       {}              121     15313       7354
      22         18  X X        {}         0554       {}               35     15348       7389
      23         19  X X        {}         0614       {}              268     15616       7657
      24         20  X X        {}         0657       {}               59     15675       7716
      25         21  X X        {}         0724       {}                5     15680       7721
      26         22  X X        {}         0727       {}                5     15685       7726
      27         23  X X        {}         0744       {}               44     15729       7770
      28         24  X X        {}         0904       {}                2     15731       7772
      29         25  X X        {}         0907       {}                1     15732       7773
      30         26  X X        {}         0940       {}              184     15916       7957
      31         27  X X        {}         0954       {}                2     15918       7959
      32          1  XX         {}         {}         0007             91     16009         91
      33          2  XX         {}         {}         0009             12     16021        103
      34          3  XX         {}         {}         0011            106     16127        209
      35          4  XX         {}         {}         0021              2     16129        211
      36          5  XX         {}         {}         0024              7     16136        218
      37          6  XX         {}         {}         0031           3773     19909       3991
      38          7  XX         {}         {}         0041            752     20661       4743
      39          8  XX         {}         {}         0051            299     20960       5042
      40          9  XX         {}         {}         0071            512     21472       5554
      41         10  XX         {}         {}         0072            217     21689       5771
      42         11  XX         {}         {}         0082            169     21858       5940
      43         12  XX         {}         {}         0083             56     21914       5996
      44         13  XX         {}         {}         0092             96     22010       6092
      45         14  XX         {}         {}         0108            149     22159       6241
      46         15  XX         {}         {}         0109             29     22188       6270
      47         16  XX         {}         {}         0155              3     22191       6273
      48         17  XX         {}         {}         0172              7     22198       6280
      49         18  XX         {}         {}         0218            557     22755       6837
      50         19  XX         {}         {}         0227            216     22971       7053
      51         20  XX         {}         {}         0230              1     22972       7054
      52         21  XX         {}         {}         0306             26     22998       7080
      53         22  XX         {}         {}         0319              1     22999       7081
      54         23  XX         {}         {}         0384            135     23134       7216
      55         24  XX         {}         {}         0554              4     23138       7220
      56         25  XX         {}         {}         0657              3     23141       7223
      57         26  XX         {}         {}         0727             10     23151       7233
      58         27  XX         {}         {}         0744            121     23272       7354
      59         28  XX         {}         {}         0907             35     23307       7389
      60         29  XX         {}         {}         0914              2     23309       7391
      61         30  XX         {}         {}         0944            268     23577       7659
      62         31  XX         {}         {}         1000             59     23636       7718
      63         32  XX         {}         {}         1218              5     23641       7723
      64         33  XX         {}         {}         1309              5     23646       7728
      65         34  XX         {}         {}         1319              3     23649       7731
      66         35  XX         {}         {}         1340            126     23775       7857
      67         36  XX         {}         {}         1404              5     23780       7862
      68         37  XX         {}         {}         1414              7     23787       7869
      69         38  XX         {}         {}         1614              8     23795       7877
      70         39  XX         {}         {}         1724              5     23800       7882
      71         40  XX         {}         {}         2218              5     23805       7887
      72         41  XX         {}         {}         2219              6     23811       7893
      73         42  XX         {}         {}         2319              6     23817       7899
      74         43  XX         {}         {}         2340              2     23819       7901
      75         44  XX         {}         {}         3029              2     23821       7903
      76         45  XX         {}         {}         3319              9     23830       7912
      77         46  XX         {}         {}         3340             31     23861       7943
      78         47  XX         {}         {}         4028              1     23862       7944
      79         48  XX         {}         {}         5118              2     23864       7946
      80         49  XX         {}         {}         6018              2     23866       7948
      81         50  XX         {}         {}         6118              1     23867       7949
      82         51  XX         {}         {}         7118              3     23870       7952
      83         52  XX         {}         {}         8118              4     23874       7956
      84         53  XX         {}         {}         9118              1     23875       7957
      85         54  XX         {}         {}         9218              2     23877       7959

小解释: {} 表示NULL。

过去我在其他一些ROW_NUMBER和聚合函数用法上都取得了成功,但是这次我不知道为什么Windows partition子句不起作用。
如您所见,辅助列COLS_FLAG看起来非常不错。但是,为什么在分区子句中无效呢?

我想这是一个棘手的错误,很简单。就像我在线程#66500中的问题一样...

感谢大家的帮助
回到顶部
查看用户资料 发送私信
查看上一个主题 :: :: 查看下一个主题  
 发表新话题     回复主题 查看书签
所有时间均为格林尼治标准时间+ 6小时
论坛索引 -> DB2

 


类似主题
话题 论坛 回覆
 没有新帖 COBOL NOADVANCING奇怪的结果在... COBOL程式设计 4
 没有新帖 复杂的计数和分组 DFSORT / ICETOOL 8
 没有新帖 如何通过分组对数据进行汇总... DFSORT / ICETOOL 6
 没有新帖 如何从Su ... TSO / ISPF 3
 没有新帖 Weirdo 结果s with JOINKEYS DFSORT / ICETOOL 4
搜索我们的论坛:


 回到顶部