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

基于其他列值计算各国订单占总订单份额 保留国家列

各国家订单数占总订单份额计算实现

核心思路

要在保留所有原有字段(含country列)的前提下计算占比,不要用GROUP BY聚合(会压缩行、丢失明细字段),直接用窗口函数计算全表订单总和,再逐行做除法即可,计算后保留3位小数匹配输出要求。

可直接运行的标准SQL代码

SELECT
    customer_id,
    country,
    count_orders,
    ROUND(
        count_orders / SUM(count_orders) OVER (),
        3
    ) AS share_total_orders
FROM 你的输入表名;

逻辑说明&样例校验

  • SUM(count_orders) OVER () 是无分区的窗口聚合,会返回全表所有行的订单数总和,不会改变原有行数,所有原字段都会完整保留
  • 代入给定样例数据:总订单数=43+94=137
    • GB占比:43/137 ≈ 0.313
    • US占比:94/137 ≈ 0.686
      完全匹配预期输出结果

兼容注意

如果你的执行环境存在整数除法默认截断取整的问题(比如部分老版本MySQL、PostgreSQL),把除法部分改成count_orders * 1.0 / SUM(count_orders) OVER ()即可得到正确的浮点结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 23:09:24