zoukankan      html  css  js  c++  java
  • Mysql中HAVING的相关使用方法

    having字句可以让我们筛选分组之后的各种数据,where字句在聚合前先筛选记录,也就是说作用在group by和having字句前。

    而having子句在聚合后对组记录进行筛选。我的理解就是真实表中没有此数据,这些数据是通过一些函数产生的。

    一、显示每个地区的总人口数和总面积.
    SELECT region, SUM(population), SUM(area) FROM bbc GROUP BY region

    先以region把返回记录分成多个组,这就是GROUP BY的字面含义。分完组后,然后用聚合函数对每组中
    的不同字段(一或多条记录)作运算。

    二、 显示每个地区的总人口数和总面积.仅显示那些面积超过1000000的地区。

    SELECT region, SUM(population), SUM(area)
    FROM bbc
    GROUP BY region
    HAVING SUM(area)>1000000

    在这里,我们不能用where来筛选超过1000000的地区,因为表中不存在这样一条记录。
    相反,having子句可以让我们筛选分组后的各组数据

    三、 having单独使用,与where类似

    eg: 查询单笔订单充值金额大于1000的

    SELECT regagent,amount FROM `cy_pay_ok`  having amount>1000 ;

    SELECT regagent,amount FROM `cy_pay_ok`  where amount>1000 ;

    两个查询结果一样

  • 相关阅读:
    服务器负载均衡的基本功能和实现原理
    二分查找
    TCP的运输连接管理
    linux常用命令
    XX公司在线笔试题编程题之一
    java对象转json格式
    Java多线程并发技术
    进程同步与通信
    单例模式的C++实现
    rsyncd启动脚本
  • 原文地址:https://www.cnblogs.com/mr-wuxiansheng/p/11188733.html
Copyright © 2011-2022 走看看