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

SQL Workbench中对按年周分组表计算各核验类型周度占比的方法

实现方案

你可以通过两种常见方式实现该需求,无需担心汇总表和原表行数不一致的问题:

方案1:使用窗口函数(推荐,无需额外关联表)

窗口函数可以直接在原表的每一行计算对应年、周的总核验量,不会改变原表行数,直接完成占比计算。
假设你的原表名为 verification_records,查询语句如下:

SELECT 
    Year,
    Week,
    Verif_Type,
    Total,
    -- 乘以100.0是为了避免整数除法导致精度丢失,ROUND保留整数位和你的预期输出一致
    ROUND(Total * 100.0 / SUM(Total) OVER (PARTITION BY Year, Week), 0) AS Percent
FROM verification_records
ORDER BY Year, Week, Verif_Type;

方案2:关联周汇总表

如果你的数据库不支持窗口函数,可以用你已经计算好的周汇总表做一对多关联,汇总表的一行对应原表同一周的多行,完全可以正常关联:

SELECT 
    t1.Year,
    t1.Week,
    t1.Verif_Type,
    t1.Total,
    ROUND(t1.Total * 100.0 / t2.week_total, 0) AS Percent
FROM verification_records t1
-- 关联你已经算好的周汇总表,下面子查询可以替换成你自己生成的汇总表名
LEFT JOIN (
    SELECT Year, Week, SUM(Total) AS week_total
    FROM verification_records
    GROUP BY Year, Week
) t2 ON t1.Year = t2.Year AND t1.Week = t2.Week
ORDER BY t1.Year, t1.Week, t1.Verif_Type;

两种方案输出的结果都和你给出的预期格式完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 06:54:00