sql语句大优化,请高人进来指点
SELECT distinct a.cooid,b.sitename,b.siteurl from wmsCounterAccount
as a inner join wmsWapSiteInfo as b on a.cooid = b.uid
where sum(a.counter) = 0 and (a.date > = '2005-5-1 0:00:00'
and a.date <= '2005-10-31 23:59:59') and(b.updatedate > = '2005-5-1 0:00:00'
and b.updatedate <= '2005-5-31 23:59:59')
order by a.cooid desc
上面的语句报错“聚合不应出现在 WHERE 子句中,除非该聚合位于 HAVING 子句或选择列表所包含的子查询中,并且要对其进行聚合的列是外部引用。”
如果把sum(a.counter)放到GROUP BY having子句做条件的话,将是一个很大的资源消费。请问过路牛人,上面的查询该如何写才是最好的效率,而且要包括错误的解决。--sum(a.counter)的处理问题