请问group by 和 having是什么意思?小弟愚笨,求解... 麻烦请举例说明,非常感谢.急。

解决方案 »

  1.   

    group by 是分组查询,having 是在分组后加过滤条件,此时在过虑条件后,可以用聚合函数。
      

  2.   


    group by o.ownerid     --按照o.ownerid分组
    having count(o.id)>=2  --并且找出每个分组中o.id大于等于2行是数据
    --在一个select语句里面,having子句和where子句不能同时出现,
    --同样是过滤条件的语句,为什么会增添一个having子句呢?
    --因为where子句里面不能使用聚合函数(sum,count,min,max,avg...)
      

  3.   


    [sql的逻辑和物理执行顺序如下]:
    from ->
    hierarical[层次查询:子查询、连接查询、嵌套sql...] ->
    where[过滤条件] ->
    group[分组] ->
    analytical[分析] ->
    select[找出所需要的数据] ->
    order[排序]
    请参考
      

  4.   

    还是买本基础的书来系统学习一下
    如:Oracle 10g Database SQL开发指南