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

SQLZoo NSS教程Q6:ROUND函数与百分比计算困惑求助

SQLZoo NSS教程第6题解法说明

问题核心

要计算两门学科中,对Q22选择A_STRONGLY_AGREE的学生百分比,本质是「选同意的学生总数 ÷ 该学科总学生数 × 100」,再用ROUND函数取整。

你的代码问题

当前计算逻辑有误:

  • SUM(response * A_STRONGLY_AGREE) / 100 仅算出了选同意的学生总数,没有除以该学科的总学生数,因此得到的不是百分比。

正确解法

先计算每个分组里选同意的学生数,再除以该分组的总学生数,乘以100得到百分比,最后用ROUND取整:

SELECT 
    subject,
    ROUND(
        (SUM(response * A_STRONGLY_AGREE / 100) / SUM(response)) * 100,
        0
    ) AS agree_percentage
FROM 
    nss
WHERE 
    question = 'Q22'
    AND subject IN ('(8) Computer Science', '(H) Creative Arts and Design')
GROUP BY
    subject

ROUND函数用法说明

ROUND(计算值, 0) 里的第二个参数0表示保留0位小数,直接把带小数的百分比(比如72.6)取整为整数(73),刚好满足题目去除小数位的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 04:26:03