• sql 一些语法 聚合函数,…


    判断内容是不是空:

    where t.wlccid is not null      //xx不是空
    where t.wlccid is null            //xx是空 (不是 = '')

    聚合函数,group by ,having 

    理解第一, 一起学的时候理解了,但时间长不用就忘了,但既然理解了.随便一看就懂了

    group by :

    是配合聚合函数使用的. select里的如果只有一个聚合函数 .当然就是计算所有的结果集就用不着group by了

    如果select里还有别的列.如select SUM(mon),name from table_xx group by name.必须加上groupby .

    既然要sum 没有group by 就不知道按什么来sum,sum谁 .要知道怎么来区分成不一样的组.分别sum组.sum才有意义.要不然怎么sum .

    聚合函数里的列不能用在groupby里.因为这样根本就不符合日常逻辑 既然要count某个列.还拿他去分组(根据这个列的值的不同来分开组 . 比如group by 年级. 不同年级的人被分到不同的组了. 这个时候去不同的组统计不同的年级这不是傻吗.每个组count(年级)都是一.没意义) .不合逻辑.

    没有聚集函数也能用groupby.但完全没意义

    having:

    having和groupby配合使用的.having和where 是有些联系的.都是筛选,不同:having是筛选组(groupby分成的组,having来找那个组符合条件) where是筛选记录(from语句组成的记录集)的. 

    例:
    select 部门编号,count(*) from 员工信息表 where 工资>=2000 group by 部门编号 having count(*)>1
    先是得到表里大于2000的.然后通过部门编号的不同把前面的子集分成不同的组.然后不同的组计算count(*).这个时候得到的结果就是 不同的组的部门编号和这个部门编号的组下的count(*). 然后对前面这样两个列的结果集开始筛选,count(*)>1的留下

    最后: groupby是为了给聚集函授分组, having是为了筛选分组的结果


  • 相关阅读:
    我把 Spring Boot Banner 换成了美女背景后……
    玩大发了,Tomcat 8.5 升级有坑…
    10 分钟快速上手 Shiro 新手教程
    为什么 HashMap 的加载因子是0.75?
    图解 Spring 循环依赖,写得太好了!
    单点登录的实现原理是什么?怎么实现?
    Maven三种仓库详解
    为什么 wait,notify,notifyAll 在 Object 类定义而不是 Thread 类?
    我们公司用了6 年的分布式锁,很是厉害!
    Google 开源的依赖注入库,比 Spring 更小更快!
  • 原文地址:https://www.cnblogs.com/wangduqiang/p/4180933.html
Copyright © 2020-2023  润新知