博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL中以count或sum为条件的查询方式
阅读量:6264 次
发布时间:2019-06-22

本文共 683 字,大约阅读时间需要 2 分钟。

 在开发时,我们经常会遇到以“
累计(count)”或是“
累加(sum)”为条件的查询。比如user_num表:
id
user
num
1
a
3
2
a
4
3
b
5
4
b
7
 
  例1:查询出现过2次的user。
  往往初学者会错误地认为在where 语句里直接使用count()算法,很显然这个想法是错误的,count()方法并不能被用在where子句中,为了解决问题,我们可以在group by子句后面使用HAVING来做条件限制。
  错误做法:
select * from user_num where count(user)>=2 group by user;
  正确做法:
select * from user_num group by user HAVING count(user)>=2 ;
  解释说明:HAVING 与 WHERE 类似,可用来决定选择哪些记录。HAVING 子句在SELECT语句中指定,显示哪些已用 GROUP BY 子句分组的记录。在GROUP BY组合了记录后, HAVING会显示 GROUP BY 子句分组的任何符合 HAVING 子句的记录。
 
  例2:查询单一用户的num总和大于10的用户。
  有前面的经验,把sum()方法写在HAVING子句中。
  正确做法:
select * from user_num group by user HAVING sum(num
)>10 ;
 
  
注意:一个HAVING子句最多只能包含40个表达式,HAVING子句的表达式之间可以用AND和OR分割。

转载地址:http://frbpa.baihongyu.com/

你可能感兴趣的文章
LeetCode39.组合总和 JavaScript
查看>>
IOS开发常用GitHub开源项目
查看>>
In FontFamilyFont, unable to find attribute android:font的报错处理
查看>>
webpack配置路径问题
查看>>
浅谈尾递归
查看>>
追踪解析 Disruptor 源码
查看>>
CSS-伪类选择器(未完待续。。。)
查看>>
Markdown常用标记使用
查看>>
使用 Docker 部署 Spring Boot项目
查看>>
高清的GIF表情包如何制作
查看>>
mysql-存储过程
查看>>
flac格式转换mp3格式要用什么软件
查看>>
黑客图标
查看>>
JavaScript数据结构与算法——集合
查看>>
DevOps自动化工具集合
查看>>
公共DNS服务器整理
查看>>
Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
查看>>
Alain 菜单权限控制
查看>>
共享本地项目
查看>>
聊聊flink的BlobStoreService
查看>>