【发布时间】:2011-05-23 04:48:08
【问题描述】:
我正在尝试从在 WHERE 子句中使用 AVG 的多个表中选择数据。
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
编辑 我只想要来自 company_unique_visitors AVG'ed 的 3 个最新号码 /编辑
所以查询会选择 company_id 604,但不会选择 company_id 602,因为 602 的 AVG 不大于 2000。
我需要帮助来编写正确的查询,以按照我的描述进行。如果需要,我可以澄清。 感谢您的帮助!
【问题讨论】:
-
感谢编辑。看起来有点长。