我正在尝试用T-SQL编写一个查询,按区域返回特定结果,并按区域名称的前几个字符对这些结果进行分组。我还需要将所有结果分组,而不是像搜索的区域名称一样作为其他。
Region Total
USA Servers West 100
USA Servers East 400
Canada Servers 120
Europe Servers 80
Asia Servers 70
Mexico Servers 50我需要将美国服务器分组为1个地区,当我搜索美国和加拿大服务器时,返回它们的总数,但返回所有其他地区的总数。
Region Total
USA Servers 500
Canada Servers 120
Others 200获得这些结果的最简单方法是什么?
发布于 2015-08-21 04:52:38
其中一种方法是使用case表达式:
SELECT region, SUM(total) AS total
FROM (SELECT CASE WHEN region LIKE 'USA Servers%' THEN 'USA Servers'
WHEN region LIKE 'Canada Servers%' THEN 'Canada Servers'
ELSE 'Others'
END AS region,
total
FROM servers) t
GROUP BY region发布于 2015-08-21 04:52:50
select 'USA Servers', sum(total)
from servers
where region like 'USA Servers%'
union all
select 'Canada Servers', sum(total)
from servers
where region like 'Canada Servers%'
union all
select 'Other Servers', sum(total)
from servers
where region not like 'USA Servers%'
and region not like 'Canada Servers%'https://stackoverflow.com/questions/32128080
复制相似问题