Я пытаюсь выбрать данные из нескольких таблиц, которые используют AVG в предложении WHERE.
SELECT company_metrics.*, companies.company_name, companies.permalink
FROM company_metrics LEFT JOIN companies
ON companies.company_id = company_metrics.company_id
WHERE MONTH(date) = '04' AND YEAR(date) = '2011'
HAVING (SELECT avg(company_unique_visitors)
FROM (SELECT company_metrics.company_unique_visitors
FROM company_metrics
ORDER BY company_metrics.date DESC LIMIT 3)
average ) >'2000'
ORDER BY date DESC
Пример данных:
###Company Metrics#### Table
company_id company_unique_visitors date
----------- ----------------------- ----
604 2054 2011-04-01
604 3444 2011-03-01
604 2122 2011-02-01
604 2144 2011-01-01
604 2001 2010-12-01
602 2011 2011-04-01
602 11 2011-03-01
602 411 2011-02-01
602 611 2011-01-01
602 111 2010-12-01
EDIT Мне нужны только 3 последних номера от company_unique_visitors AVG, обработанные /EDIT
Таким образом, запрос выберет company_id 604, но не выберет company_id 602, потому что 602 не имеет AVG больше 2000.
Мне нужна помощь в написании правильного запроса, чтобы сделать то, что я описал. Могу уточнить, если нужно. Спасибо за вашу помощь!