SQL技术需求:按三列唯一组合聚合并计算BOUNDTECHNICAL
SQL分组聚合并计算BOUNDTECHNICAL的解决方案
以下是满足需求的SQL查询语句,核心逻辑是按指定字段分组、求和后计算比值:
SELECT SUBMISSIONNUMBER, ATTACHMENT, BOUND, SUM(BOUNDPREMIUM) AS TOTAL_BOUNDPREMIUM, SUM(TECHPREMIUM) AS TOTAL_TECHPREMIUM, CASE WHEN SUM(TECHPREMIUM) = 0 THEN NULL ELSE SUM(BOUNDPREMIUM) / SUM(TECHPREMIUM) END AS BOUNDTECHNICAL FROM your_table_name -- 替换为你的实际数据表名称 GROUP BY SUBMISSIONNUMBER, ATTACHMENT, BOUND ORDER BY SUBMISSIONNUMBER, ATTACHMENT, BOUND;
关键细节说明
- 分组规则:通过
GROUP BY SUBMISSIONNUMBER, ATTACHMENT, BOUND实现按这三个字段的唯一组合聚合数据。 - 求和处理:使用
SUM()函数分别统计每组的BOUNDPREMIUM和TECHPREMIUM总和,命名为带前缀的别名便于区分原始字段。 - 防错处理:加入
CASE语句判断TECHPREMIUM总和是否为0,避免出现除以0的运行错误,此时返回NULL(可根据需求调整为0或其他默认值)。 - 结果排序:
ORDER BY子句保证输出结果的顺序与预期一致,便于查看。
内容的提问来源于stack exchange,提问作者Bustergun
相关产品推荐
相关产品推荐

