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

如何在SQL Server中对同义汽车品牌进行分组统计?

解决SQL Server中汽车品牌别名合并统计的问题

这里有几种可行的解决方案,帮你把同一品牌的不同别名合并统计:

方案1:将CASE表达式同时用于SELECT和GROUP BY

直接在GROUP BY中复用SELECT里的CASE逻辑,这样就能基于统一后的品牌名称分组:

SELECT 
    CASE 
        WHEN make IN ('VW', 'Volkswagen') THEN 'Volkswagen Group'
        WHEN make IN ('Mercedes', 'Mercedes-Benz') THEN 'Mercedes-Benz'
        ELSE make 
    END AS brand,
    COUNT(*) AS count
FROM CarList
GROUP BY 
    CASE 
        WHEN make IN ('VW', 'Volkswagen') THEN 'Volkswagen Group'
        WHEN make IN ('Mercedes', 'Mercedes-Benz') THEN 'Mercedes-Benz'
        ELSE make 
    END
ORDER BY brand

方案2:用CTE/子查询先统一品牌名称,再分组

通过公共表表达式(CTE)先把所有品牌名称标准化,再对标准化后的结果分组,逻辑更清晰:

WITH NormalizedCars AS (
    SELECT 
        CASE 
            WHEN make IN ('VW', 'Volkswagen') THEN 'Volkswagen Group'
            WHEN make IN ('Mercedes', 'Mercedes-Benz') THEN 'Mercedes-Benz'
            ELSE make 
        END AS normalized_brand
    FROM CarList
)
SELECT 
    normalized_brand AS brand,
    COUNT(*) AS count
FROM NormalizedCars
GROUP BY normalized_brand
ORDER BY brand

方案3:创建品牌映射表(长期维护首选)

如果后续会有更多品牌别名需要处理,建议创建一个映射表来管理原始品牌和标准品牌的对应关系,这样不用频繁修改统计语句:

首先创建映射表并插入数据:

CREATE TABLE BrandMapping (
    OriginalBrand VARCHAR(50) PRIMARY KEY,
    StandardBrand VARCHAR(50) NOT NULL
)

INSERT INTO BrandMapping (OriginalBrand, StandardBrand)
VALUES 
('VW', 'Volkswagen Group'),
('Volkswagen', 'Volkswagen Group'),
('Mercedes', 'Mercedes-Benz'),
('Mercedes-Benz', 'Mercedes-Benz')

然后关联映射表进行统计:

SELECT 
    COALESCE(bm.StandardBrand, cl.make) AS brand,
    COUNT(*) AS count
FROM CarList cl
LEFT JOIN BrandMapping bm ON cl.make = bm.OriginalBrand
GROUP BY COALESCE(bm.StandardBrand, cl.make)
ORDER BY brand

为什么你之前的方法无效?

  • 第一次用CASE时GROUP BY的是原始make字段,所以VW和Volkswagen还是会被分成两组,只是显示的别名相同
  • 直接GROUP BY type报错是因为SQL Server在处理GROUP BY阶段时,还未解析SELECT子句中定义的别名,无法识别type字段

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 20:22:14