# 1111 - Неправильное использование групповой функции - PullRequest
4 голосов
/ 18 января 2011

Я использую следующий запрос, чтобы получить общее количество (сумму) слайдов, извлекая максимальное количество из каждого проекта, однако я получаю следующую ошибку (# 1111 - Неправильное использование групповой функции).Вот запрос:

SELECT COALESCE(project,'Total') as Project, SUM(MAX(slides)) as Slides 
FROM projects_tbl 
WHERE date BETWEEN '2010-01-01' AND '2010-12-31' 
GROUP BY Project with ROLLUP

Если я удаляю SUM (), то он работает, однако я не получаю точную сумму для всех проектов / слайдов.

Заранее спасибо за любые ответы.

Ответы [ 2 ]

4 голосов
/ 18 января 2011
SELECT  COALESCE(project,'Total') as Project, SUM(maxslides) AS slides
FROM    (
        SELECT  project, MAX(slides) as maxslides
        FROM    projects_tbl
        WHERE   date BETWEEN '2010-01-01' AND '2010-12-31' 
        GROUP BY
                project
        ) q
GROUP BY
        project WITH ROLLUP
2 голосов
/ 18 января 2011

Вы можете попробовать что-то вроде:

SELECT sum(prjmax) 
FROM
(SELECT COALESCE(project,'Total') as Project, MAX(slides) as prjmax
FROM projects_tbl 
WHERE date BETWEEN '2010-01-01' AND '2010-12-31' 
GROUP BY Project with ROLLUP)

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

...