SQL部分最大值

时间:2010-04-30 15:17:35

标签: sql ms-access

遇到以下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个B,所以返回11。

“max”元素(情况1中的A,情况2中的B和情况3中的C)无关紧要。我只需要拿出标题和最大值。

这不应该太棘手,但我无法让它发挥作用。使用MS Access,但可以使用SQL。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

这样的事情应该有效:

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

编辑:没关系..我误解了。 Quassnoi的解决方案应该有效。