2012-05-25 22 views
1

比方说,我有如下表:如何重新组合与不同的值记录在一个SQL查询

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

我想创建一个sql query尽可能简单重新集结居住在定义分组国家的人一样:

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

我不知道如何创建一个group withn我recordscolumn可能公顷ve多个不同values在同一组...

有人能帮助我吗?

更多信息:SQL Server 2008 database

+0

ü可以使组,但根据姓名或年龄,因为它们是不同的值,你无法做但你可以根据像AVG(年龄)或CONCAT(名称),使最大(age0等.. – Addicted

+0

对于什么数据库?你试过了什么? –

+0

举例来说,假设我可以在我的sql查询中定义我的组! –

回答

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进行分组。如果此分组是静态的,则可以使用分离表并使用内部连接。这将使查询更具可读性

+0

的变化而变化。同样非常有趣,我想你也得到了我想要的!我会试一试!感谢您的回答 ! –

+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 
+0

非常有趣,我想你有我想要的!我会试一试!感谢您的回答 ! –

+0

在哪个db上运行此查询。我感到困惑? –

+0

说实话,@ejb_guy提出了一些我不熟悉的东西。我不知道它是否标准,但可能值得检查您的实施。 – JNF

相关问题