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

无分组列时如何求和?SQL手动按大洲汇总销售额实现方法

按大洲汇总销售额的SQL实现方案

核心用CASE WHEN语句手动完成国家到大洲的映射,无需修改源表结构即可实现需求。

方案1:直接从原始销售表查询

如果还没做按国家的求和,可以直接在聚合逻辑里加映射规则:

SELECT
  CASE country
    WHEN 'Germany' THEN 'Europe'
    WHEN 'Italy' THEN 'Europe'
    WHEN 'UK' THEN 'Europe'
    WHEN 'Canada' THEN 'North America'
    WHEN 'USA' THEN 'North America'
    -- 新增国家直接补充对应WHEN分支即可
    ELSE 'Other' -- 可选配置,未匹配到的国家统一归为其他
  END AS continent,
  SUM(sales) AS `sum of sales`
FROM 你的销售表名
GROUP BY continent

方案2:基于已有的国家求和结果查询

如果你已经生成了按国家求和的中间结果,套一层子查询即可:

SELECT
  CASE country
    WHEN 'Germany' THEN 'Europe'
    WHEN 'Italy' THEN 'Europe'
    WHEN 'UK' THEN 'Europe'
    WHEN 'Canada' THEN 'North America'
    WHEN 'USA' THEN 'North America'
    ELSE 'Other'
  END AS continent,
  SUM(`sum of sales`) AS `sum of sales`
FROM (
  -- 此处替换为你已经写好的、按国家求和的查询语句
  SELECT country, SUM(sales) AS `sum of sales` FROM 你的销售表名 GROUP BY country
) AS country_sales_tmp
GROUP BY continent

注意:不同数据库的标识符引用规则略有差异,比如带空格的字段名sum of sales在PostgreSQL中需要用双引号包裹,SQL Server中需要用方括号包裹,可根据你使用的数据库类型调整对应写法。
映射规则里的国家名称要和表中存储的实际值完全一致,拼写、大小写都要匹配,否则会被归入Other分类。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 20:27:04