在这个查询中,以下 having 的条件乍看起来相当合理: havingsum(amount)》0 然而,如果 amount 只能是正数或零,这种 having 用法就不合理。最好改为: where amount 》0 此例中,groupby的使用分两种情况。首先: select customer_id from orders where order_date 0 groupbycustomer_id 我们注意到,groupby对聚合计算是不必要的,可以用 distinct 取代它,并执行相同的排序和消 除重复项目的工作: select distinct customer_id from orders where order_date 0 把条件放在 where 子句中,能让多余的记录尽早被过滤掉,因而更高效。 总结:聚合操作的数据应尽量少。 ………………………………………………………………………用户上传之内容结束……………………………………………………………………………………