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

如何编写SQL代码实现按ID归类数据所属区域(多区域标记)

解决方案

这是个典型的分组聚合加条件判断的SQL需求,我给你写个能直接用的代码,还会拆解下逻辑:

假设你的第一张表叫id_country(存储ID与Country字段),第二张临时区域表叫temp_region,对应的SQL代码如下:

SELECT 
    ic.ID,
    CASE 
        WHEN COUNT(DISTINCT tr.Region) = 1 THEN MAX(tr.Region)
        ELSE '多区域'
    END AS Region
FROM 
    id_country ic
INNER JOIN 
    temp_region tr ON ic.Country = tr.Country
GROUP BY 
    ic.ID
ORDER BY 
    ic.ID;

代码逻辑拆解:

  • 表关联:用INNER JOIN通过Country字段把两张表连接,这样每个ID对应的所有Country的区域信息就都能获取到了。
  • 分组统计:按ID分组后,用COUNT(DISTINCT tr.Region)统计每个ID下有多少种不同的区域——这是判断结果的核心依据。
  • 条件输出:如果统计出的不同区域数是1,就取这个唯一的区域名(用MAX是因为分组后只要是唯一值,MAX/MIN都能拿到,选哪个都可以);如果大于1,就输出“多区域”。
  • 排序:最后加ORDER BY ic.ID是为了让结果和你预期的输出顺序一致,看起来更规整。

把你提供的测试数据代入后,得到的结果完全符合预期:

  • ID=1 → 仅对应APAC区域,输出APAC
  • ID=2 → 对应APAC和EMEA两个区域,输出“多区域”
  • ID=3 → 对应LATAM和APAC两个区域,输出“多区域”
  • ID=4 → 仅对应APAC区域,输出APAC

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:14:02