看下面的操作:
我使用了三次sum,这个并不会导致计算三次,数据库会自动进行优化,最终实际进行的sum计算只有一次。
这里我再提供一个子查询的实现方式:
这两种方式都对test这张表完整的轮询了一遍,区别在于,子查询还需要对查询结果再轮询一遍,而使用having子句则不需要,如果查询结果集很大,那么子查询就是不合适的。
having的使用实际上和where很像,区别在于where只能跟在from后面,having只能跟在group by后面。
看下面的操作:
我使用了三次sum,这个并不会导致计算三次,数据库会自动进行优化,最终实际进行的sum计算只有一次。
这里我再提供一个子查询的实现方式:
这两种方式都对test这张表完整的轮询了一遍,区别在于,子查询还需要对查询结果再轮询一遍,而使用having子句则不需要,如果查询结果集很大,那么子查询就是不合适的。
having的使用实际上和where很像,区别在于where只能跟在from后面,having只能跟在group by后面。