2012-06-09 28 views
-3

使用分組依據如果我有這樣的一個表:在非數字字段

ID | Name | Age 
1 | Bill | 30 
2 | Jim | 20 
3 | Bill | 30 
4 | Bill | 30 
5 | Bob | 25 

我想回到這個:

ID | Name | Age 
1 | Bill | 30 
2 | Jim | 20 
5 | Bob | 25 

我試過,但它不工作:

SELECT ID,Max(Name),Age FROM TABLE 
GROUP BY ID,Age 

我該怎麼做?

+2

有沒有ID 3的鮑勃,所以它怎麼可能工作? – hvd

+0

你想通過Max(Name)實現什麼? – WojtekT

+1

所以你想要每個名字都有一個不同的年齡,但是加了你自己的'ID'? ID = 3和Bob之間沒有關係。 –

回答

6

這應該工作:

select MIN(ID), NAME, AGE from TABLE group by NAME, AGE 
+0

我正要以幾乎相同的方式回答,除了我也會使用'MIN(AGE)'並將其從GROUP BY中移除。假設 - 這是一個很大的假設 - 一個名稱只存在於一個年齡段,兩個查詢都會返回相同的數據。 – hvd

-2

分組由ID已經沒有意義,因爲ID已獨樹一幟。

SELECT Max(Name), AGE 
    FROM TABLE 
    GROUP BY Age 
+0

他希望不同的值與匹配行中的任何ID。所以這實際上不是一個好的答案。 –