逐步來看
1蓖扑、where和聚合函數(shù)
where條件先執(zhí)行唉铜, 然后是聚合函數(shù)台舱,然后是having
簡單舉例說來:
select sum(num) as rmb from order where id>10
//只有先查詢出id大于10的記錄才能進行聚合語句
2、having條件表達式為聚合函數(shù) 和 group by
簡單舉例說來:
select reportsto as manager, count() as reports from employees
group by reportsto having count() > 4
// having 子句查詢低于聚合語句, 對于分組后再次判斷時竞惋,就可以用having柜去。group by是分組用的。
3拆宛、當一個查詢語句同時出現(xiàn)了where,group by,having,order by的時候嗓奢,執(zhí)行順序和編寫順序是:
a.執(zhí)行where xx對全表數(shù)據(jù)做篩選,返回第1個結(jié)果集浑厚。
b.針對第1個結(jié)果集使用group by分組股耽,返回第2個結(jié)果集。
c.針對第2個結(jié)果集中的每1組數(shù)據(jù)執(zhí)行select xx钳幅,有幾組就執(zhí)行幾次物蝙,返回第3個結(jié)果集。
d.針對第3個結(jié)集執(zhí)行having xx進行篩選敢艰,返回第4個結(jié)果集诬乞。
e.針對第4個結(jié)果集排序。
總結(jié)
(筆記:from --> where --[result 1]--> group by --[result 2]--> select (x N) --[result 3]--> having --[result 4]--> order by --> OUTPUT)