zoukankan      html  css  js  c++  java
  • 4.对数据表进行分组--Group By

    4.对表进行分组

    a.使用Group By应该注意以下几点

    • 1.只能写在Select语句中(如果有where子句需要写在where子句之后)
    • 2.Group By的结果是无序的
    • 3.where 子句中不能使用聚合函数
    • 4.Group By的筛选数据条件应该写在HAVING子句中

    b.Group by 常见的问题

    • 1.select中使用了对于的列值
    • 2.在where子句中使用聚合函数

    c.筛选分组--Having

    • eg:sc学生成绩表,有sno字段,cno课程表,grade分数
    • select cno,count(*) from sc group by cno having count(*)>2;
    • Having如何使用
        • 1.常数
          • 0返回空  非0表示正确      
        • 2.group by中指定的元素(建议写在where条件中)
          • select cno,count(*) from sc group by cno having cno="EE-1"  
        • 3.聚合函数  
          • select cno,count(*) from sc group by cno having count(*)>2

    d.where子句与Having子句的执行速度比较

    • 1.SQL执行顺序:From-->WHERE-->Group By-->Having-->Select
    • 2.Group by中会按照分组的列进行排序,排序的数据越少越好
    • 3.所以筛选数据放在where中比较合适
        • a.Having中只能使用group by对应的列
        • b.where子句可以删除一部分数据,还可以为对应的列添加索引 

     

  • 相关阅读:
    Jmeter的几种参数化方式
    selenium实现原理
    python问题
    跨域问题的解决方案
    jquery的ajax的语法
    给JavaScript 对象添加方法
    循环遍历对象的属性
    Function专题 以及js的预解析理解
    如何理解javascript中类和对象这两个概念?
    封装原生ajax
  • 原文地址:https://www.cnblogs.com/yangyunnb/p/6440208.html
Copyright © 2011-2022 走看看