你有多少个这样的区间?用decode来嵌套

解决方案 »

  1.   

    表 AAA_CSDN_1 ID
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9表 AAAA_CSDN_2ID IDLIST
    1 2.5
    2 3
    3 15
    4 16.5
    5 7
    6 8

    查询sql:SELECT AREA, SUM(IDLIST) AS COU
    FROM (SELECT A.IDLIST, B.SERIAL, TO_CHAR(B.MIN_VAR) || '→' || TO_CHAR(B.MAX_VAR) 
                  AS AREA
            FROM AAAA_CSDN_2 A,
                      (SELECT ROWNUM AS SERIAL, (ROWNUM - 1) * 5 AS MIN_VAR, 
                           ROWNUM * 5 AS MAX_VAR
                     FROM AAA_CSDN_1) B
            WHERE A.IDLIST >= B.MIN_VAR AND A.IDLIST < B.MAX_VAR) C
    GROUP BY AREA查询结果:AREA COU
    0→5 5.5
    15→20 31.5
    5→10 15说明:AAA_CSDN_1 可以为任意表,只需要记录数大于你的区间数就可以