【发布时间】:2015-10-26 00:45:57
【问题描述】:
我有一个 MySQL 查询,它非常简单,但有一个问题,想知道是否有人可以解释一下。我要做的就是包含两个聚合函数,它们同时添加“今年”+“去年”,过滤掉任何少于 200 个总投票的结果
目前,查询有效,输出如下所示:
name | total_votes
--------------------
apple | 119
lemon | 218
orange | 201
pear | 111
但是,当我添加 where 语句时,出现语法错误:
select
name,
sum(this_year)+sum(last_year) as total_votes
from fruit_sales
group by name
where total_votes>200
上面的结果在我的 SQL fiddle 中出现了这个语法错误:
"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where total>200' at line 6"
我也试过了:
select
name,
sum(this_year)+sum(last_year)>200 as total_votes
from fruit_sales
group by name
这是一个 SQLfiddle,其中包含表格和我的查询:
http://sqlfiddle.com/#!9/a6862/11
这里的任何帮助将不胜感激!
【问题讨论】:
-
sqlfiddle.com/#!9/a6862/14 WHERE 过滤预聚合 HAVING 过滤后聚合