You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle分析函数分区:自定义分支分组统计账户数的实现方法

Oracle分析函数自定义分组统计方案

核心结论

PARTITION BY子句不支持直接写入where类的过滤条件,它仅接受用于分组的表达式,你之前的写法属于语法错误,所以会报错。

实现自定义分组的具体方法

通过构造自定义分组键,将branch_id 1、2划分为同一组,3、4划分为另一组,再基于这个分组键做分区统计,有两种常用实现方式:

方式1:CASE表达式(通用SQL语法)

select 
    branch_id, 
    account_id,
    -- 生成分组标识:1、2归为GROUP_1_2,其余归为GROUP_3_4
    count(account_id) over (partition by 
        case 
            when branch_id <= 2 then 'GROUP_1_2'
            else 'GROUP_3_4'
        end
    ) as group_total_accounts
from account;

方式2:DECODE函数(Oracle专属简洁写法)

select 
    branch_id, 
    account_id,
    -- sign(branch_id-2)返回-1(branch_id<2)、0(branch_id=2)、1(branch_id>2),统一映射分组
    count(account_id) over (partition by 
        decode(sign(branch_id - 2), -1, 'GROUP_1_2', 0, 'GROUP_1_2', 'GROUP_3_4')
    ) as group_total_accounts
from account;

扩展说明

如果后续需要调整分组规则,比如把branch_id=1单独分组,2-4为另一组,只需要修改CASE或DECODE里的分支逻辑即可,适配性很强。

内容的提问来源于stack exchange,提问作者user3474704

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 11:27:38