MAX и WHERE

ccop

Новичок
MAX и WHERE

Есть таблица типа text, author_id, category + некоторые опциональные столбцы.
Нужно получить для каждой строки уникального category (хотя записи с category могут повторятся) значение за формулой
MAX( num_show+is_song*20+is_gold_fond*100 ) и соотвественно зафиксировать author_id и category
И потом в этом же запросе подсчитать общее кол-во текстов автора в данной категории, типа
COUNT(*) WHERE author_id = fixed_authro_id AND category = fixed_category

к примеру:
/text/author_id/category/...
/.е./2 /3 /...
/.у./2 /3 /...
/.г./1 /3 /...
/.ш./3 /3 /...
/.щ./3 /3 /...
/.ф./3 /3 /...

К примеру мы получили запись с MAX( num_show+is_song*20+is_gold_fond*100 ) для категории 3 и соотвественно author_id = 2, хотя
вот как узнать что это именно author_id = 2, ведь как я понял MAX мы не можем пихать в WHERE
Т.е. SELECT author_id FORM poetics WHERE MAX( num_show+is_song*20+is_gold_fond*100 ) - не правильный запрос ?
у меня не работает...

Так, предположим мы получили author_id, теперь нужно выполнить запрос SELECT COUNT(*)recount FROM poetics WHERE author_id = 2 AND category = 3

Вспомагательный вопрос: как запихнуть MAX в WHERE ?

Все это желательно сделать одним запрос, хотя в конечном итоге важен только recount последнего запроса.

-~{}~ 15.04.06 23:01:

Есть запрос:
[SQL]
SELECT id, MAX( SUM( id ) )
FROM `poetics`
WHERE 1 GROUP BY id
[/SQL]
При выполнении выдает ошибку: Invalid use of group function

выходит обьединять функции нельзя?
Как можно реализовать алгоритм решения такой проблемы?

-~{}~ 15.04.06 23:14:

Две темы наверное обьединили, но это по сути два разных вопроса.... :(
Добавлю тогда:
у меня есть общее кол-во балов которые пользователь набрал в разделе:
[SQL]
SELECT category cat, SUM( num_show+is_song*20+is_gold_fond*100 ) recount FROM `poetics` WHERE author_id = ид GROUP BY category ORDER BY category ASC
[/SQL]
num_show+is_song*20+is_gold_fond*100 - формула за которой считаем балы

мне нужно получить максимальное кол-во балов в разделе

это можно было бы решить
[SQL]
SELECT category cat, MAX(SUM( num_show+is_song*20+is_gold_fond*100 )) recount FROM `poetics` WHERE author_id = ид GROUP BY category ORDER BY category ASC
[/SQL]
но не работает запрос....
 

zerkms

TDD infected
Команда форума
[sql]
SELECT id, SUM( id ) AS `sum`
FROM `poetics`
WHERE 1
GROUP BY id ORDER BY `sum` DESC LIMIT 1
[/sql]

-~{}~ 18.04.06 15:03:

а про другой вопрос (часть вопроса) - ты как то невнятно выражаешься. по крайней мере я, прочитав пост 2 раза, только запутался ещё сильнее ;)
 
Сверху