对函数产生的值来设定条件时 我们会用到你说的 group by 和 having举例来说,我们可能只需要知道哪些店的营业额有超过 1,500元。在这个情况下,我们不能使用 WHERE 的指令。那要怎么办呢?很幸运地,SQL 有提供一个 HAVING 的指令,而我们就可以用这个指令来达到这个目标。 HAVING 子句通常是在一个 SQL 句子的最后。一个含有 HAVING 子句的 SQL 并不一定要包含 GROUP BY 子句。HAVING 的语法如下: SELECT "栏位1", SUM("栏位2") FROM "表格名" GROUP BY "栏位1" HAVING (函数条件) 请注意: GROUP BY 子句并不是一定需要的。 在我们Store_Information 表格这个例子中, Store_Information 表格
store_name Sales Date Los Angeles 1500 Jan-05-1999 San Diego 250 Jan-07-1999 Los Angeles 300 Jan-08-1999 Boston 700 Jan-08-1999
我们打入,再执行
SELECT store_name, SUM(sales) FROM Store_Information GROUP BY store_name
HAVING SUM(sales) > 1500 结果为: store_nameSUM(Sales) Los Angeles1800 好了,用法就是这样,group by 和 having 都用到了!很简单吧!!
select SSID as 学号 ,SCID as 课程 ,最高分=max(score),min(score) '最低分',Round (avg(score),2)as 平均分
from score
where score is not null ---有成绩的
group by SSID,SCID --分组
having count(score)>1 ---补考的 出现的次数大于1的
order by 平均分 DESCwhere---group by---having:三个使用的顺序是 where--group by--having 通常 having跟随在group by 之后
有一张表就可以练习group by having的用法了。Select 姓名,Count(*) From Table group by 姓名 Having 姓名 Like '张%'
估计你是学sql server的,自己拿它的示例库,想怎么查都行,自己给自己出题。