2012-05-25 70 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

相關問題