1. 程式人生 > >sql語句中 having與where區別

sql語句中 having與where區別

HAVING語句通常與GROUP BY語句聯合使用,用來過濾由GROUP BY語句返回的記錄集。

HAVING語句的存在彌補了WHERE關鍵字不能與聚合函式聯合使用的不足。

 

 

CREATE TABLE `tp5_student` (

  `id` int(11) DEFAULT NULL,

  `no` int(11) DEFAULT NULL COMMENT '學號',

  `course` varchar(255) DEFAULT NULL COMMENT '課程',

  `score` int(11) DEFAULT NULL COMMENT '分數'

) ENGINE=InnoDB DEFAULT CHARSET=utf8

 

SELECT id,no, COUNT(course) as numcourse, AVG(score) as avgscore

 

FROM tp5_student

 

GROUP BY no

 

 

SELECT id,no, COUNT(course) as numcourse, AVG(score) as avgscore

 

FROM tp5_student

 

GROUP BY no HAVING  AVG(score)>=85

 

 

 

 

SELECT id,no, COUNT(course) as numcourse, AVG(score) as avgscore

 

FROM tp5_student

 

WHERE  id>3

 

GROUP BY no