ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 做练习(八)

做练习(八)

原创 Linux操作系统 作者:softZEROware 时间:2009-04-15 17:11:40 0 删除 编辑

1、如果查询中包含聚合函数,而所选择的列并不在聚合函数中,那么这些列就必须在GROUP BY 字句中。例:

SELECT product_type_id,AVG(price)

FROM products;

       *
ERROR at line 1:
ORA-00937: not a single-group group function

2、不能在WHERE字句中使用聚合函数来限制行。如果试图这样做,就会出现下面的错误,例:

SELECT product_type_id,AVG(price)

FROM products

WHERE AVG(price) > 20

GROUP BY product_type_id

      *
ERROR at line 3:
ORA-00934: group function is not allowed here

因为WHERE字句只能用来对单行而不是分组进行过滤,要过滤分组行,可以使用HAVING字句

3、HAVING子句可以用来过滤行分组,它可以放在GROUP BY子句之后,

SELECT ....

FROM

WHERE....

GROUP BY ...

HAVING....

ORDER BY...

GROUP BY 可以不与 HAVING一起使用,但是HAVING 必须与GROUP BY 子句一起使用

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17016200/viewspace-589319/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 这网络
下一篇: 做练习(九)
请登录后发表评论 登录
全部评论

注册时间:2009-02-18

  • 博文量
    45
  • 访问量
    30108