2010-04-30 85 views
2

正在努力解決以下SQL問題。SQL部分最大值

假設與條目的三維表(H,T,Q)

1,A,20 
    1,A,10 
    1,B,5 
    2,A,10 
    2,B,3 
    2,B,8 
    3,C,50 
    4,A,10 
    etc. 

我想通過所述第一元件以提取

1,30 
2,11 
3,50 
etc. 

組,然後返回的最大的q值相同類型,即對於標題編號2,有10個As和11個Bs,因此返回11.

「最大」元素(案例1中的A,案例2中的B和案例3中的C)無關緊要。我只需要擺脫標題和最大值。

這應該不是太棘手,但我不能得到它的工作。使用MS Access,但可以在其中使用SQL。

回答

2
SELECT h, MAX(cnt) 
FROM (
     SELECT h, SUM(q) AS cnt 
     FROM mytable 
     GROUP BY 
       h, t 
     ) sq 
GROUP BY 
     h 
+0

謝謝,正是我想要的。不得不承認,我不知道你可以在一次通話中通過多個字段進行分組。 – Rob 2010-04-30 15:41:26

0

像這樣的東西應該工作:

select h, max(q) from table 
group by h 

編輯:沒關係..我誤解了。 Quassnoi的解決方案應該可行。