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

PySQL 单查询实现同列两行数据占比计算并生成单独pct列

实现代码

写法1(兼容所有主流数据库,无窗口函数依赖)

SELECT 
    t.*,
    ROUND((t.value / total.sum_val) * 100, 2) AS pct
FROM 你的表名 t
CROSS JOIN (
    SELECT SUM(value) AS sum_val FROM 你的表名
) total

写法2(支持窗口函数的数据库可用,代码更简洁)

SELECT 
    *,
    ROUND((value / SUM(value) OVER()) * 100, 2) AS pct
FROM 你的表名

注意事项

  • 已修正原公式的运算优先级问题,将a/a+b调整为a/(a+b),避免结果计算错误
  • 两种写法均为单条查询,未使用WITH子句,符合要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 03:51:02