开发者

SQL partial max

Struggling with the following SQL problem.

Assume a three dimensional table with entries (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.

I would like to extract

 1,30
 2,11
 3,50
 etc.

group by the fi开发者_如何学Gorst element and then return the maximum q value of the same type, i.e. for header number 2 there are 10 As and 11 Bs, so return 11.

The "max" element (A in case 1, B in case 2 and C in case 3) is irrelevant. I just need to get out the header and that maximum value.

This shouldn't be too tricky, but I can't get it to work. Using MS Access, but can use SQL within.


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


Something like this should work:

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

Edit: Never mind.. I misunderstood. Quassnoi's solution should work.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜