zoukankan      html  css  js  c++  java
  • sql的having深入理解;group by只返回一组的一行,compute更好

    Having

    where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行

    having 子句的作用是筛选满足条件的组,即在分组之后过滤数据条件中经常包含聚组函数,使用having 条件显示特定的组,也可以使用多个分组标准进行分组。

    总之,select 后用where过滤,找到符合条件的元组。

    而一旦需要 按某个值分组,用group by语句,需要在组内进行过滤时,就用having,如having sum(某列)>4。

    记住,having 用在group by后,配合使用,过滤结果。过滤条件使用聚集函数。

    所以聚合函数,作于在having 内部,先执行。作用在where外,后执行。

    使用compute和compute by
    使用compute子句允许同时观察查询所得到各列的数据的细节以及统计各列数据所产生的汇总列
    select * from work [查询所得到的各列的数据的细节]
    compute max(基本工资),min(基本工资) [统计之后的结果]
    这个例子中没有使用by关键字,返回的结果是最后添加了一行基本工资的最大值和最小值,也可增加by关键字.
    例:select * from work order by 学历
    compute max(基本工资),min(基本工资) by 学历
    比较:select 学历,max(基本工资),min(基本工资) from work group by 学历
    说明:1:compute子句必须与order by子句用在一起
    2:compute子句可以返回多种结果集.一种是体现数据细节的数据集,可以按分类要求进行正确的分类;另一种在分类的基础上进行汇总产生结果.
    3:而group by子句对每一类数据分类之后只能产生一个结果,不能知道细节。

  • 相关阅读:
    关于粒子发射(CAEmitterLayer)
    自定义cell(xib)中button点击事件不能响应的情况
    xcode意外退出
    iOS开发技巧-2
    禁止UIWebView随键盘的弹起而往上滚动
    内联函数
    使用sudo apt-get出现无法解析域名的问题:“cn.archive.ubuntu.com”
    iOS进阶
    swift 中的defer
    iOS中static的作用
  • 原文地址:https://www.cnblogs.com/cl1024cl/p/6205517.html
Copyright © 2011-2022 走看看