sql-server - SQL : Count Distinct and Combine Similarly-Named

标签 sql-server t-sql sql-server-2014

语言: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/

相关文章:

c# - Linq 选择数据库中的对象存在字典键

sql - 条件 where Sql 服务器

sql-server - TSQL - 更好的 INT 转换函数

sql-server - SQL Server XML查询: Query multiple child elements with same name

sql-server - 不使用游标填充表的 ID 列

sql - 在 SQL Server 中将 XML 转换为 XML 数据类型

SQL Server 分区。为明年创建新分区

SQL Server - 如何从从上到下的数字列表中查询最大数字集

sql-server - 使用 Microsoft SQL Server 从 SELECT 更新

mysql - 在出现逗号时向现有 SQL 字符串添加附加内容