SQL частичный макс - PullRequest
       9

SQL частичный макс

2 голосов
/ 30 апреля 2010

Борьба со следующей проблемой 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.

Элемент "max" (A в случае 1, B в случае 2 и C в случае 3) не имеет значения. Мне просто нужно вытащить заголовок и это максимальное значение.

Это не должно быть слишком сложно, но я не могу заставить его работать. Использование MS Access, но может использовать SQL в пределах.

Ответы [ 2 ]

2 голосов
/ 30 апреля 2010
SELECT  h, MAX(cnt)
FROM    (
        SELECT  h, SUM(q) AS cnt
        FROM    mytable
        GROUP BY
                h, t
        ) sq
GROUP BY
        h
0 голосов
/ 30 апреля 2010

Примерно так должно работать:

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

Редактировать: Неважно .. Я неправильно понял. Решение Quassnoi должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...