MySQL基础6-分组查询
1.分组函数


需求20:查询所有商品平均零售价
SELECT AVG(salePrice) FROM product
需求21:查询商品总记录数
SELECT COUNT(id) count FROM product
需求22:查询分类为2的商品总数
SELECT COUNT(id) count FROM product WHERE dir_id=2;
需求23:查询商品的最小零售价,最高零售价,以及所有商品零售价总和
SELECT MIN(salePrice) 最小零售价,MAX(salePrice) 最高零售价,SUM(salePrice)零售价总和
FROM product

2.分组查询

栗子1:查询每个商品的分类编号和每个商品分类各自的平均零售价
SELECT dir_id,AVG(salePrice)
FROM product
GROUP BY dir_id;


栗子2:查询每个商品分类编号和每个商品分类各自的商品总数
SELECT dir_id,COUNT(id) FROM product GROUP BY dir_id;

栗子3:查询每个商品分类编号和每个商品分类中零售价大于100的商品总数
SELECT dir_id,COUNT(id) FROM product WHERE salePrice >100 GROUP BY dir_id;

3.HAVING子句(对分组之后的结果做过滤)
HAVING子句通常和GROUP BY子句一起使用,用来限制搜索条件。HAVING子句与组有关,不与单个值有关,它会作用于GROUP BY创建的组。
HAVING子句是可选的,不能单独使用,只能配合GROUP BY子句使用,作用是对GROUP BY子句设置条件,对统计后的结果进行限制。
栗子4:查询每个商品分类编号和每个商品分类中零售价大于100的商品总数,商品总数大于5的分类
SELECT dir_id,COUNT(id)
FROM product
WHERE salePrice >100
GROUP BY dir_id
HAVING COUNT(id)>5;

栗子5:查询零售价大于100的商品零售价总和大于1500的商品分类编号以及总零售价和
SELECT dir_id,SUM(salePrice) sum
FROM product
WHERE salePrice>100
GROUP BY dir_id
HAVING sum>1500

MySQL基础6-分组查询的更多相关文章
- MySQL:基础—数据分组
MySQL:基础-数据分组 1.为什么要分组: 比如一个表中有多条订单记录,如上图,每条记录对应着一个商品,现在我要查询 每个商品被订购的单数 准备出货?也就是找到每个商品被订购的数量. 如果只找一个 ...
- Mysql按时间段分组查询
Mysql按时间段分组查询来统计会员的个数,mysql个数 Mysql按时间段分组查询来统计会员的个数,mysql个数 1.使用case when方法(不建议使用)- 代码如下 复制代码SELECT ...
- Mysql:实现分组查询拼接未分组同一字段字符group_concat()
Mysql:实现分组查询拼接未分组同一字段字符group_concat() MySQL中,如果想实现将分组之后的多个数据合并到一列,可以使用group_concat函数,如下图所示: 在oralce中 ...
- mysql group by分组查询后 查询个数
mysql group by分组查询后 查询个数2个方法随便你选 <pre>select count(distinct colA) from table1;</pre>< ...
- MySQL基础架构之查询语句执行流程
这篇笔记主要记录mysql的基础架构,一条查询语句是如何执行的. 比如,在我们从student表中查询一个id=2的信息 select * from student where id=2; 在解释这条 ...
- mysql按照时间分组查询
mysql 按年.月.周.日分组查询 1.按照年份分组查询 SELECT DATE_FORMAT(t.bill_time,'%Y') month_time,sum(t.pay_price) total ...
- Mysql学习总结(23)——MySQL统计函数和分组查询
1.使用count统计条数:select count(字段名...) from tablename; 2.使用avg计算字段的平均值:select avg(字段名) from tablename: 这 ...
- mysql group by分组查询
分组的SQL语句有2个: group by 和分组聚合函数实现 partition by (oracle和postgreSQL中的语句)功能 group by + having 组合赛选数据 注意:h ...
- Mysql按时间段分组查询来统计会员的个数
1.使用case when方法(不建议使用)- 代码如下 复制代码 SELECT COUNT(DISTINCT user_id) user_count, CASE WHEN cre ...
随机推荐
- javascript Boolean
Boolean 对象表示两个值:true 或 false 创建Boolean对象的语法 new Boolean(value) //构造函数 Boolean(value; //转换函数 参数 参数va ...
- oracle中查找与已知表的数据库对象
在此次情况中,业务顾问就给我提供了一张客户公司客户化的Form,然后让找出界面上的数据是怎样生成的. 首先我们从EBS form 界面上找到了界面的数据来源于一张表ks_so_line_margin_ ...
- Spring Boot概要
1.Spring Boot使用“习惯优于配置”(项目中存在大量的配置,此外还内置了一个习惯性的配置)的理念,使用户的项目实现快速运行.通过学习Spring Boot中的配置文件application. ...
- maven+jenkins发布环境
安装java省略,下面是环境变量 export JAVA_HOME=/usr/java/jdk1.8.0_65/ export PATH=$JAVA_HOME/bin:$PATH export CLA ...
- 微软高性能缓存AppFabric (一) 安装
博客原文链接:http://www.cnblogs.com/Qbit/p/6088703.html AppFabric 缓存功能的前身是VeloCity ,它是基于windows平台的一个高速内存缓存 ...
- hiho一下 第三十八周 二分答案
题目链接:http://hihocoder.com/contest/hiho38/problem/1 ,挺难想的解题思路,好题. 按照提示的算法来: 我们需要找什么? 在这个题目中我们需要找的是路径最 ...
- linux 命令——54 ping(转)
Linux系统的ping 命令是常用的网络命令,它通常用来测试与目标主机的连通性,我们经常会说“ping一下某机器,看是不是开着”.不能打开网页时会说“你先ping网关地 址192.168.1.1试试 ...
- 集成Ehcache用来缓存表以后,怎么设置缓存刷新时间
问答 集成Ehcache用来缓存表以后,怎么设置缓存刷新时间 发布于 217天前 作者 老司机 93 次浏览 复制 上一个帖子 下一个帖子 标签: 无 集成Ehcache用来缓存表以后, ...
- Codeforces Round #323 (Div. 2) D 582B Once Again...(快速幂)
A[i][j]表示在循环节下标i开头j结尾的最长不减子序列,这个序列的长度为p,另外一个长度为q的序列对应的矩阵为B[i][j], 将两序列合并,新的序列对应矩阵C[i][j] = max(A[i][ ...
- 【转】Nginx搭建反向代理服务器过程详解
阅读目录 1.1 反向代理初印象 1.2 反向代理的作用 2.1 Nginx是神马? 2.2 Nginx的应用现状 2.3 Nginx的核心特点 3.1 准备一个ASP.NET网站部署到IIS服务器集 ...