You need to enable JavaScript to run this app. SQL如何实现多城市客户标记为Mix、单城市客户显示对应城市的查询
优惠活动
大模型
产品
解决方案
定价
更多

SQL如何实现多城市客户标记为Mix、单城市客户显示对应城市的查询

SQL 实现多城市客户标记方案

实现逻辑

  • 按 customer 字段分组聚合单客户的所有城市记录
  • 统计每个客户对应的去重城市数量,可通过LOWER()函数规避大小写导致的判断误差
  • 条件判断返回结果:唯一城市直接返回城市名,多个城市返回Mix

可用 SQL 语句

SELECT 
  customer,
  CASE
    WHEN COUNT(DISTINCT LOWER(city)) = 1 THEN MAX(city)
    ELSE 'Mix'
  END AS city
FROM 你的表名 -- 替换为你实际的表名
GROUP BY customer
-- 可选:按客户名排序
ORDER BY customer;

用到的核心SQL语法说明

  • GROUP BY customer:将同个客户的所有记录合并为一组,是聚合统计的基础
  • COUNT(DISTINCT LOWER(city)):统计每个客户对应的不重复城市数量,LOWER()将城市名统一转为小写判断,避免示例中france/France这类大小写差异导致的误判,不需要区分大小写时可去掉该函数
  • CASE WHEN:条件分支语句,这里用来根据城市数量返回对应结果
  • MAX(city):当客户仅对应一个城市时,用聚合函数提取该唯一城市值,符合SQL分组后非分组字段必须聚合的语法要求,换成MIN(city)效果一致

该写法为标准ANSI SQL,兼容MySQL、PostgreSQL、SQL Server、Oracle等绝大多数主流数据库,代入你的表名即可直接运行,测试示例数据可得到你期望的输出结果。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 00:54:04