SQL Count(*)函数,GROUP_By,Having的联合使用
COUNT(*) 函数返回在给定的选择中被选的行数。
语法:SELECT COUNT(*) FROM table
使用:现在有一个表,名叫app_category,从Navicat中可以看到表中所有数据,如图所示,可见表中有297条数据
使用count函数的时候可以看到:
当然仅仅是这个样子,是木有意义的,我用个可视化工具一眼看穿,要这个函数就显得鸡肋了,那么我们继续往下看。
场景是这样的:表app_category与表category关联。且表间关系是一对多,即同一个app_category_id 对应多个category-id,现在我需要统计出每一个category_id在app_category表中出现的次数那么该如何实现呢,请看接下来的操作:
这样依然有点不够酷炫,那么我们还可以在后面继续追加sql语句呀
例如这条语句:
SELECT category_id ,COUNT(*) AS count FROM app_category
GROUP BY category_id HAVING count(category_id) >2
其查询的结果是只有count的值大于2 的时候,才是需要的结果
是不是有点小先进了,当然不要激动,我们还可以把这个查询的结果作为子查询,进行嵌套查询,两个表关联查询然后再嵌套查询等等。这里我就不过多截图,上一个开发商城项目中用到的查询语句:
SELECT ps.name FROM property_set ps , category_property_set cps WHERE ps.id=cps.property_set_id AND category_id=(
SELECT category_id AS count FROM category_property_set
GROUP BY category_id HAVING count(category_id) <5
)
大眼一看,可能比较懵逼,听我分析一下:
首先是子查询:SELECT category_id AS count FROM category_property_set
GROUP BY category_id HAVING count(category_id) <5
查出category_property_set 表中category_id出现次数小于5的那个category_id的具体的值,刚好得到的结果是只有一条,那么满足嵌套查询的条件,用到<,>=等符号时,子查询结果必须唯一,所有给其添加到外部查询,其实等价于这样一条语句:
SELECT ps.name FROM property_set ps , category_property_set cps WHERE ps.id=cps.property_set_id AND category_id=925640926728343552
不用怀疑,这个category_id就是查询出来的ID,然后这又是一个最最基本的两表联合查询,连个外联内联都没用,然后结果就是这个样子
啊哈,刚好就是我需要的一个名称,为啥这麻烦呢,因为表建的不好呗,需要通过category_id 查category_property_set表,然后再通过结果去查property_set表,最后得到属性的名字,然后就只能想办法在sql语句上下功夫了呀。
当然,看完有可能还是蒙蔽的。不要虚,看这个
http://www.w3school.com.cn/sql/sql_func_count_ast.asp
这个网址里面的东西看完了,保证啥查询语句都难不倒你了。说完收工
SQL Count(*)函数,GROUP_By,Having的联合使用的更多相关文章
- SQL-W3School-函数:SQL COUNT() 函数
ylbtech-SQL-W3School-函数:SQL COUNT() 函数 1.返回顶部 1. COUNT() 函数返回匹配指定条件的行数. SQL COUNT() 语法 SQL COUNT(col ...
- SQL COUNT() 函数
COUNT() 函数返回匹配指定条件的行数. SQL COUNT() 语法 SQL COUNT(column_name) 语法 COUNT(column_name) 函数返回指定列的值的数目(NULL ...
- sql 聚合函数和group by 联合使用
原文 很多时候单独使用聚合函数的时候觉得很容易,求个平均值,求和,求个数等,但是和分组一起用就有点混淆了,好记性不如烂笔头,所以就记下来以后看看. 常用聚合函数罗列 1 AVG() - 返回平均值 C ...
- sql count 函数用法
count(*) 会查询所有记录数,,包括为null值的数据: count(column)不会包含 column值为null的情况: count(1) 和 count(*)相同,,不同的是,,mysq ...
- Mysql与Sql server,Sum函数跟Count函数
两者均是统计类函数,都不计算NULL字段!!! 单纯计算行数的话,count的效率比sum的效率高 MySQL SUM()函数介绍 SUM()函数用于计算一组值或表达式的总和,SUM()函数的语法如下 ...
- SQL Server -- 回忆笔记(二):增删改查,修改表结构,约束,关键字使用,函数,多表联合查询
SQL Server知识点回忆篇(二):增删改查,修改表结构,约束,关键字使用,函数,多表联合查询 1. insert 如果sql server设置的排序规则不是简体中文,必须在简体中文字符串前加N, ...
- oracle,sql server count函数 存储过程 判断 行数 注意事项
oralce中使用 count 函数判断 行数 需要注意 一定是count 有值的字段,接下来看一组语句 --查询数据 select * from kk_create_ka where auto_id ...
- SQL Server数据库--》top关键字,order by排序,distinct去除重复记录,sql聚合函数,模糊查询,通配符,空值处理。。。。
top关键字:写在select后面 字段的前面 比如你要显示查询的前5条记录,如下所示: select top 5 * from Student 一般情况下,top是和order by连用的 orde ...
- NET MVC全局异常处理(一) 【转载】网站遭遇DDoS攻击怎么办 使用 HttpRequester 更方便的发起 HTTP 请求 C#文件流。 Url的Base64编码以及解码 C#计算字符串长度,汉字算两个字符 2019周笔记(2.18-2.23) Mysql语句中当前时间不能直接使用C#中的Date.Now传输 Mysql中Count函数的正确使用
NET MVC全局异常处理(一) 目录 .NET MVC全局异常处理 IIS配置 静态错误页配置 .NET错误页配置 程序设置 全局异常配置 .NET MVC全局异常处理 一直知道有.NET有相关 ...
随机推荐
- Linux.SSH.修改SSH端口号
Linux系统的默认SSH端口是22, 一般为发安全起见, 建议修改成其它端口 编辑配置文件: vi /etc/ssh/sshd_config 找到 #Port 22 把前面的#号去掉, 22修改成新 ...
- 用source语句引用mysql文件的细节注意
今天在使用 mysql数据库的时候,创建 数据表的时候出现了很多的小问题,今天一天花费了大量的时间去解决这些问题.首先就是一些小的细节,在文本编辑器上编辑好了SQL语句,然后转移到mysql的命令行中 ...
- 《Spark Python API 官方文档中文版》 之 pyspark.sql (二)
摘要:在Spark开发中,由于需要用Python实现,发现API与Scala的略有不同,而Python API的中文资料相对很少.每次去查英文版API的说明相对比较慢,还是中文版比较容易get到所需, ...
- win7旗舰版安装IIS
1.在控制面板中:程序->打开或关闭Windows功能 2.在弹出的对话窗中,在“Internet服务信息”中作如下勾选(打钩的为全选) 点击确定后安装. 3.安装成功后回到控制面板->系 ...
- two.js之实现动画效果
一.什么是two.js? Two.js 是面向现代 Web 浏览器的一个二维绘图 API.Two.js 可以用于多个场合:SVG,Canvas 和 WebGL,旨在使平面形状和动画的创建更方便,更简洁 ...
- 手工搭建ABP框架(1) - Web项目
为了防止不提供原网址的转载,特在这里加上原文链接: http://www.cnblogs.com/skabyy/p/7295533.html ABP是 ASP.NET Boilerplate Proj ...
- 使用js编写一个简单的运动框架
下班后,,没事捣鼓捣鼓个人的小爱好. 首先,说明我的这个运动框架(css所有属性)也是常见的框架一种,健壮性并不是太好,对于新手学习倒是挺好,,若是大神,老司机请拐弯. 上来,我们先定义一个区块,然后 ...
- 如何成为一个javascript高手【转载】
原文网址: http://www.cnblogs.com/keva/p/how-to-become-a-javascript-badass.html 英文网址:http://www.clientc ...
- robotframework自动化系列:随机下拉框
robotframework自动化系列:随机下拉框 随着项目自动化不断推进,在下拉框定位的时候出现些问题,每次下拉框选择都是相同的下拉选项,如果想每次选择的选项不一样,该如何实现呢,查找了很多资料,没 ...
- C#中RichEdit控件,保存文本和图片到mysql数据库
分别通过内存流和RTF文件保存 方法1: //建立内存流 MemoryStream ms = new MemoryStream(); //ms.Position = 0; //把当前的richtext ...