sql 一些语法 聚合函数,group by,having_习惯累积沉淀_新浪博客

判断内容是不是空:

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是为了筛选分组的结果


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值