zoukankan      html  css  js  c++  java
  • 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是为了筛选分组的结果


  • 相关阅读:
    Go简介
    sRGB标准与伽马校正
    【Web】HTTP基本认证之 Basic Auth
    【ElasticSearch】 ElasticSearch SQL(十三)
    【ElasticSearch】 ElasticSearch X-Pack之用户认证(十二)
    【ElasticSearch】 ElasticSearch Java客户端(十一)
    【ElasticSearch】 ElasticSearch集群分布式文档(十)
    【ElasticSearch】 ElasticSearch集群之分片、副本、故障转移(九)
    【ElasticSearch】 ElasticSearch集群安装(八)
    【ElasticSearch】 全文搜索(七)
  • 原文地址:https://www.cnblogs.com/wangduqiang/p/4180933.html
Copyright © 2011-2022 走看看