语言:T-SQL
服务器:SQL Server 2014
我有一张电脑表,想了解制造商对每台电脑的计数。这很简单,但是当从每台 PC 提取数据时,一些较旧的 HP 计算机将其制造商报告为“Hewlett-Packard”,而较新的计算机将其制造商报告为“HP”。我想将这些组合成“HP”。不进行任何替换/组合的查询如下:
SELECT
DISTINCT f_assetmanufacturer AS 'Manufacturer',
COUNT(DISTINCT f_assettagID) AS 'Number of Each'
FROM tb_assets
GROUP BY f_assetmanufacturer
基于当前查询的示例输出:
Manufacturer Number of Each
Dell Inc. 10
Hewlett-Packard 6
HP 6
期望的输出:
Manufacturer Number of Each
Dell Inc. 10
HP 12
如何重写查询以组合“HP”和“Hewlett-Packard”COUNT?
最佳答案
在制造商列上使用 REPLACE 来获取您需要的格式化字符串。
SELECT COUNT(*), REPLACE(Mfg, 'Hewlett-Packard', 'HP')
FROM dbo.SO41271540
GROUP BY REPLACE(Mfg, 'Hewlett-Packard', 'HP')
关于sql-server - SQL : Count Distinct and Combine Similarly-Named,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41271540/