MySQL--分组数据
1、数据分组
#连接数据库
use newschema;
#查看表中数据
select *from products;
#返回供应商1003提供的产品数目
select count(*) as num_prods from products where vend_id=1003;

2、创建分组
select vend_id,count(*) as num_prods from products group by vend_id;

**Group By 子句必须出现在where自居之后,order by 子句之前。
#使用with rollup
select vend_id,count(*) as num_prods from products group by vend_id with rollup; #使用with rollup关键字,可以得到每个分组以及每个分组汇总级别(针对每个分组)的值。

3、过滤分组
所有类型的where子句都可以用having来替代。唯一差别师where过滤行,而having过滤分组。
select cust_id,count(*) as orders from orders group by cust_id having count(*)>=2;

having和where的差别:where在数据分组前进行过滤,having在数据分组后进行过滤。
select vend_id,count(*) as num_prods
from products
where prod_price>=10
group by vend_id
having count(*)>=2;

分析:where子句过滤所有prod_price至少为10 的行,然后按照cend_id 分组,having子句过滤计数为2或2以上的分组。
select vend_id,count(*) as num_prods
from products
group by vend_id
having count(*)>=2;

4、分组和排序
select order_num,sum(quantity*item_price) as ordertotal
from orderitems
group by order_num
having sum(quantity*item_price)>=50;

select order_num,sum(quantity*item_price) as ordertotal
from orderitems
group by order_num
having sum(quantity*item_price)>=50
order by ordertotal;

5、select子句顺序
下列表是在使用select语句时必须遵循的次序
| select |
| from |
| where |
| group by |
| having |
| order by |
| limit |
MySQL--分组数据的更多相关文章
- MySQL分组数据
分组 理解分组能够看例如以下一个样例,首先我们打印出products表例如以下 从上面的表中能够看出.每一个vendor都有若干个产品,那么怎么一次统计每一个vendor有多少个产品呢? 这里就能够使 ...
- MySQL(五)汇总和分组数据
一.汇总数据 工作中经常需要汇总数据而不是将它们全部检索出来(实际数据本身:返回实际数据是对时间和处理资源的浪费),这种类型的检索有以下特点: ①确定表中的行数(或者满足某个条件或包含某个特定值的行数 ...
- 《MySQL必知必会》整理
目录 第1章 了解数据库 1.1 数据库基础 1.1.1 什么是数据库 1.1.2 表 1.1.3 列和数据类型 1.1.4 行 1.1.5 主键 1.2 什么是SQL 第2章 MySQL简介 2.1 ...
- 《mysql必知必会》笔记1(检索、排序、过滤、计算、汇聚、分组)
一:了解SQL 1:列是表中的字段,所有表都由一个或多个列组成的.行是表中的记录,表中的数据都按行存储. 2:表中每一行都应该有可以唯一标识自己的一列或一组列.主键(一列或一组列),其值能够唯一区分每 ...
- 快速回顾MySQL:汇总和分组
10.3 汇总数据 我们经常需要汇总数据而不用把它们实际检索处出来,为此MySQL提供了专门的函数.使用这些函数,MySQL查询可用于检索数据,以便分析和报表的生成.这种类型的检索例子有以下几种: 确 ...
- MySQL必知必会--分 组 数 据
数据分组 目前为止的所有计算都是在表的所有数据或匹配特定的 WHERE 子句的 数据上进行的.提示一下,下面的例子返回供应商 1003 提供的产品数目 但如果要返回每个供应商提供的产品数目怎么办?或者 ...
- msql 必知必会笔记
Edit Mysql 必知必会 第一章 理解SQL 什么是数据库 数据库(database) 保存有组织的数据的容器 什么是表 一组特定类型的数据的结构化清单 什么是模式 数据库和表的布局及特性的 ...
- mysql-数据分组
一.创建分组 上面所讲的语句都是建立在表的所有数据或匹配特定的where子句的数据上进行的.是否能够进行分组,在进行汇总计算哪儿?例如:要想返回每个供应商提供的产品数目怎么办? 分组是在select语 ...
- MySQL使用笔记(八)统计函数和分组数据记录查询
By francis_hao Dec 17,2016 统计函数数据记录查询 统计函数 统计函数 描述 count() count(*):统计表中记录条数(包括NULL值字段) count(fie ...
- 12.MySQL必知必会之分组数据
本文将介绍如何分组数据,以便能汇总表内容的子集,这涉及两个新SELECT语句子句,分别是 GROUP BY 子句和HAVING子句. 1.1 创建分组 分组是在SELECT语句的GROUP BY子句中 ...
随机推荐
- Javascript基础五(BOM和DOM)
1.BOM概念 什么是BOM? BOM是Browser Object Model的缩写,简称浏览器对象模型.这个对象就是window BOM提供了独立于内容而与浏览器窗 ...
- LeetCode Array Easy 219. Contains Duplicate II
---恢复内容开始--- Description Given an array of integers and an integer k, find out whether there are two ...
- docker学习---搭建Docker私有库及删除库内镜像
环境准备系统: cat /etc/redhat-release CentOS Linux release (Core) 主机两台,分别是docker私有库服务器(IP 192.168.121.121) ...
- mybatis-generator 代码自动生成插件
Hibernate 可以选择MyEclipse Datebase Explorer 或者是 Hibernate-tools 等工具来自动生成映射文件和实体类. mybatis 当然也要有!下面简单介绍 ...
- Java运行显示无待入值
忘记添加@Param()
- Administrator 被禁用
Administrator 被禁用 问题: 重装系统后出现输入用户名和密码的情况,原因是Administrator被禁用. 解决方法: 1.开机后shift+重启 –>选择疑难解答 --> ...
- bzoj 2013
http://www.lydsy.com/JudgeOnline/problem.php?id=2013 最初看这个题的时候,以为神题不可做,然后去找yzjc..然后做法过于简单了(' ' ...
- centos7实现ssh免秘钥分发
centos7的秘钥分发与centos6的秘钥分发还有点不一样,今天在给朋友排坑,在网上找了半天,也没有一个好解决方法,就只能自己研究,今天就把我解决的问题分享出来:那么如何实现centos7秘钥分发 ...
- VC2010 CString.Format使用报错 error C2664
error C2664: “void ATL::CStringT<BaseType,StringTraits>::Format(const wchar_t *,...)”: 不能将参数 1 ...
- (转)MyEclipse中使用git
转:https://www.jianshu.com/p/92ee5c99d3a8 Myeclipse老版本可能需要安装一个插件,高版本中已经安装好了. 连接github 当然我们之前已经有仓库了,我们 ...