Oracle 如何对GROUPBY查询返回的计数执行范围存储桶

Oracle 如何对GROUPBY查询返回的计数执行范围存储桶,oracle,plsql,Oracle,Plsql,我希望你能帮助我 我所处的情况是,我首先需要计算不同的基金和分组策略。一旦我做到了这一点,我需要将保单的数量放在基金数量的范围内 这是可用的数据,您可以在其中看到与之相关的政策和不同的基金 **PolicyNum Fund** 1201 AB 1202 AC 1203 AB 1203 AC 1203 AD 1204 AB 1204 BC 1204 AC 1204 AD

我希望你能帮助我

我所处的情况是,我首先需要计算不同的基金和分组策略。一旦我做到了这一点,我需要将保单的数量放在基金数量的范围内

这是可用的数据,您可以在其中看到与之相关的政策和不同的基金

**PolicyNum Fund** 
1201        AB
1202        AC
1203        AB
1203        AC
1203        AD
1204        AB
1204        BC
1204        AC
1204        AD
1204        AE
1204        AF
现在我需要对按策略分组的基金进行计数。 我已使用此查询来执行以下操作:

select fv, policy, count(distinct fv.fund)
  from policy_fund fv
 group by fv.policy
 order by count(distinct fv.fund) desc
使用上述代码后,会出现以下情况 在该视图中,您可以查看链接到每个保单的基金数量

**Policy    No. of Funds**
1201    1
1202    1
1203    3
1204    6
现在,问题部分,我想谈一谈这个,即基金数量的范围,以及有多少政策属于该范围:

实现基金数量范围以及每个范围内有多少政策的这一观点所需的帮助

**Range of Number of funds  Number of policies**
0 to 1                       2
2 to 3                       1
4 to 5                       0
5 to 6                       1

您可以将查询左键连接到一个派生表,该表定义了范围内计数的范围,然后按范围分组并对策略进行计数

SELECT r.l || ' to ' || r.u "RANGE",
       count(p) "COUNT"
       FROM (SELECT 0 l,
                    1 u
                    FROM dual
             UNION ALL
             SELECT 2 l,
                    3 u
                    FROM dual
             UNION ALL
             SELECT 4 l,
                    5 u
                    FROM dual
             UNION ALL
             SELECT 6 l,
                    7 u
                    FROM dual) r
            LEFT JOIN (SELECT fv.policy p,
                              count(distinct fv.fund) cof
                              FROM policy_fund fv
                              GROUP BY fv.policy) fpp
                      ON fpp.cof >= r.l
                         AND fpp.cof <= r.u
      GROUP BY r.l,
               r.u
      ORDER BY r.l,
               r.u;

选择fv,policy,应该是选择fv.policy,?感谢您努力使问题具有视觉吸引力。但是这些HTML表是不需要的。事实上,如果想要从ASCII或Unicode中创建实际数据集,ASCII或Unicode就足够了,而且更容易使用。所以我回滚了你上次的编辑。