如何在一个SQL查询中重新组合具有不同值的记录

时间:2012-05-25 05:50:27

标签: sql-server-2008 group-by

我们说我有下表:

Name - Country - Age
--------------------
Toto - Switzerland - 10
Titi - France - 12
Tata - Italy - 21
Tutu - England - 13
Tete - Italy - 14

我想尽可能简单地创建一个sql query来重新组合生活在定义的分组国家/地区的人们:

A组=瑞士+意大利 B组=法国+英格兰

我不知道如何在我的group records创建一个columnvalues可能在同一组中有多个不同的SQL Server 2008 database ...

有人可以帮我吗?

更多信息:{{1}}。

2 个答案:

答案 0 :(得分:4)

你的意思是这样吗?

SELECT COUNT(Name), GroupA, GroupB FROM
   (`SELECT Name, Country, Age,
   Country='Switzerland' OR Country='Italy' As GroupA,
   Country='France' OR Country='England' As GroupB)
Group By GroupA, GroupB

答案 1 :(得分:2)

             Select * from (select *,case when Country ='Switzerland' then 'A'
                         when Country ='Italy' then 'A'  
                         when Country ='France' then 'B'  
                         when Country ='England' then 'B'  
                    else 'C' end) classification from table1)
         order by classification

这将根据您的标准对ppl进行分组。如果此分组是静态的,则可以使用分隔表并使用内部联接。这将使查询更具可读性