MySQL:基础—数据分组

1.为什么要分组:


比如一个表中有多条订单记录,如上图,每条记录对应着一个商品,现在我要查询 每个商品被订购的单数 准备出货?也就是找到每个商品被订购的数量。

如果只找一个商品的话,我想是很简单的。


但是我想要表达的是,我要统计每一个商品的订单数目,而不是单单一个。效果就像这样:


此时我们就要对订单信息分类(根据ID)聚集然后进行运算,这时我们要用到分组

说明:  

  使用分组可以将数据分为多个逻辑组,对每个组进行聚集计算。注意是先分为逻辑组,再进行聚集计算。

2.创建分组:

2.1语句:

  GROUP BY 子句

2.2根据单个条件分组:

  

2.3根据多个条件分组:

  

3.过滤分组:

3.1什么是过滤分组:

  我认为过滤分组表达的实质是先将记录按分组条件进行分组再根据过滤条件筛选这些分组,最后返回那些符合过滤条件的分组。
比如, 根据单个条件分组的 中,我们将每个ID的数目进行了统计输出,现在我只想要输出那些数目大于2的,就需要用到过
滤分组。

3.2HAVING语句:

这条语句就是确定过滤条件的。
如上述所说,我们显示同一个ID的产品数目大于2的。

3.3HAVING与WHERE的关系:

  当我们使用时可能会有这种想法,为什么不用WHERE?那我们用WHERE试一试。

很明显语法出错,因为WHERE过滤指定的是行而不是分组。事实上,WHERE没有组的概念,而HAVING却恰恰相反
我又有一个想法,我要进行的根据ID的分组是有条件的,比如某件商品虽然属于一个ID,但是我嫌它的价格便宜,我就不让它进行分组,这时WHERE就可以派上用场了。

有一条特性:

  WHERE是在分组前进行信息过滤的,HAVING则是分组后。

转载于:https://www.cnblogs.com/MrSaver/p/5985837.html

MySQL:基础—数据分组相关推荐

  1. MySQL基础数据生成工具

    这是一个自己写的用于生成基础MySQL数据的工具,仅供用于基础语法练习.该工具生成的所有数据均为虚拟,以上所有数据均为随机生成,需要者可自取. https://download.csdn.net/do ...

  2. MySQL入门 - 数据分组之 group by

    作者:汤圆学Java 个人博客:https://www.javalover.cc/ 前言 group by 用来对数据进行分组,即按照指定的字段或者表达式进行分组: 目录 group by 语句介绍 ...

  3. Mysql基础-数据的查询

    数据查询是数据库使用过程中用到最多的,数据查询可用于单表查询,也可用于多表查询. 1.准备数据 -- 首先创建一个库test,使用utf8编码 create database test charset ...

  4. MySQL之数据分组与数据透视表

    目录 (1)对分组后的数据进行聚合运算 (2)对聚合后的数据进行条件筛选 (3)group_concat()函数 (4)rollup (5)数据透视表 开发工具: mysql-8.0 DataGrip ...

  5. mysql查询数据分组后保留每组前n条数据

    最近做项目遇到一个这样需求的sql语句,根据一系列的条件后,分组查询出来的数据是这样的 可以看到用户id=4 的有三条数据,用户id=1的有两条数据. 我需求是相同的用户id只取最多两条数据,也就如下 ...

  6. mysql 连接 分组_MySQL 基础 (四) 分组查询及连接查询

    MySQL 基础 (四) 分组查询及连接查询 MySQL 基础(四) 进阶 5 分组查询 语法: SELECT 分组函数, 列(要求出现在 group by 的后面) FROM 表 [where 筛选 ...

  7. MySQL基础——按月/周/日分组统计数据

    MySQL基础--按月/周/日分组统计数据 在使用MySQL进行查询时,很多时候,我们需要按时间段进行统计,例如每周,每月的数据:这里我们需要使用到MySQL的关键词:DATE_FORMAT 1. 语 ...

  8. MySQL 基础 ———— 分组查询

    引言 承接上一篇<MySQL 基础 ----高频函数总结>,本篇单独针对分组查询进行简单的总结和归纳,并为后续更为复杂的DQL 语句做好铺垫. 查询语句: SELECT AVG(salar ...

  9. MySQL基础(三)表关系及数据的增删改查

    这一部分主要使用SQL中的DML,数据库操作语言(data manipulation language),对数据库数据进行增.删.改.查操作,作为前提,先介绍关系型数据库中的表关系. 关系型数据库(R ...

最新文章

  1. Android 购物车图片上面添加数字
  2. 原创 人物志|山东省临沭县 - 一位身残志坚的奋斗青年 - 吴忠军
  3. 用Python做自然语言处理必知的八个工具【转载】
  4. CUDA 编程实例:计算点云法线
  5. ubuntu 15.04 /var/log/下各个日志文件及修复无message文件和debug文件
  6. Wannafly 挑战赛27 题解
  7. oracle_sqlserver和mysql获取表外键的方法_mysql、sqlserver、oracle三种数据库维护索引、外键、字段语法总结...
  8. layui表头样式_layui中table表头样式修改方法
  9. 无心剑英译朱自清《匆匆》
  10. (原创)Python 自动化测试框架详解
  11. 2015年创业中遇到的技术问题:21-30
  12. Eclipse调试Java的10个技巧
  13. 讯飞智能语音先锋者:等到人机交互与人类交流一样自然时,真正的智能时代就来了!...
  14. 斐波那契数列与黄金分割比以及矩阵形式推导
  15. 《深入浅出统计学(中文版)》读书笔记【全15章】
  16. 关于Web网页设计规范简述
  17. 经典算法书籍推荐(亲测有效)
  18. 微信公众号h5中调用微信支付
  19. 【Unity】【C#】《U3d人工智能编程精粹》学习心得--------操纵行为--路径跟随
  20. 2019第十届蓝桥杯——I.胖子迷宫

热门文章

  1. NSDate的具体用法
  2. exchange 2007 碰到NDR
  3. POJ 3660 Cow ContestCow(Floyd传递闭包)题解
  4. 关于LateX的应用
  5. tomcat端口号被占用
  6. 基础篇:7.Content provider与Content Resolver实现数据共享
  7. 一个完整的Core Data应用
  8. 算法-二叉树中的最大路径和
  9. Android Camera 预览拉伸
  10. 使用命令编译为jar包