-3

问题1。sql 的 where 子句不能与聚合函数(sum、avg、max、min)一起使用?

问题2。考虑一个名为 cust 的表,包含列:orderno、custid、cost

select * from cust having cost> avg(cost)

avg(cost) 给出输出 5695,因此,输出中应该有 3 条记录,因为它们的成本大于 5695。但只有一条记录。另一方面,这个查询:

select * from cust having cost>(select avg(cost) from cust)给出正确的输出为什么?

4

1 回答 1

2
  1. 不,使用HAVING
  2. 因为 MySQL 没有正确实现 SQL 并隐含GROUP BY
  3. 因为这几乎是一个正确的查询(见 2)。它应该是

    select * from cust where cost>(select avg(cost) from cust)

于 2012-09-20T13:15:46.213 回答