iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >详解MySQL 数据分组
  • 661
分享到

详解MySQL 数据分组

MySQL分组MySQL数据分组 2022-05-27 21:05:09 661人浏览 八月长安
摘要

创建分组 分组是在SELECT语句中的GROUP BY 子句中建立的。 例: SELECT vend_id, COUNT(*) AS num_prods FROM products GROUP BY v

创建分组

分组是在SELECT语句中的GROUP BY 子句中建立的。

例:


SELECT vend_id, COUNT(*) AS num_prods FROM products GROUP BY vend_id;

GROUP BY

  • GROUP BY子句可以包含任意数目的列,这使得能对分组进行嵌套,为数据分组提供更细致的控制。
  • 如果在GROUP BY子句中嵌套了分组,数据将在最后规定的分组商家进行汇总。换句话说,在建立分组时,指定的所有列都一起计算。(所有不能从个别的列取回数据)。
  • GROUP BY子句中列出的每个列都必须是检索列或有效的表达式(但不能是聚集函数)。如果在SELECT中使用表达式,则必须在GROUP BY子句中指定相同的表达式,不能使用别名
  • 除聚集计算语句外,SELECT语句中的每个列都必须在GROUP BY子句中给出。
  • 如果分组列中具有NULL值,则NULL将作为一个分组返回。如果列中有多行NULL值,他们将分为一组。
  • GROUP BY子句必须出现在WHERE子句之后,ORDER BY 子句之前。

过滤分组

如果想要列出至少有两个订单的所有骨科,这样的数据就必须基于完整的分组而不是个别的行进行过滤。

可以使用HAVING


SELECT cust_id, COUNT(*) AS orders FROM orders GROUP BY cust_id HAVING COUNT(*) >= 2;

HAVING和WHERE的差别,WHERE在数据分组前进行过滤,HAVING在分组后进行过滤。当然,两个也可以在同一条语句中出现。

列出具有2个(含)以上、价格为10(含)以上的产品的供应商


SELECT vend_id, COUNT(*) AS num_prods FROM products WHERE prod_price >= 10 GROUP BY vend_id HAVING COUNT(*) >= 2;

列出具有两个至上的产品的供应商


SELECT vend_id, COUNT(*) AS num_prods FROM products GROUP BY vend_id HAVING COUNT(*) >= 2;

分组和排序

ORDER BY GROUP BY
排序产生的输出 分组行。但输出可能不是分组的顺序
任意列都可以使用(非选择的列也可以) 只可能使用选择列或表达式列,而且必须使用每个选择列表达式
不一定需要 如果与聚集函数一起使用列(表达式),则必须使用

检索总计订单价格大于等于50的订单的订到号和总计订单价格


SELECT order_num, SUM(quantity*item) 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;

SELECT子句的顺序

子句 说明 是否必须使用
SELECT 要返回的列或表达式
FROM 从中检索数据的表 仅在从表选择数据时使用
GROUP BY 分组说明 仅在按组计算聚集时使用
WHERE 行级过滤
HAVING 组级过滤
ORDER BY 输出排序顺序
LIMIT 要检索的行数

以上就是详解Mysql 数据分组的详细内容,更多关于mysql数据分组的资料请关注自学编程网其它相关文章!

您可能感兴趣的文档:

--结束END--

本文标题: 详解MySQL 数据分组

本文链接: https://www.lsjlt.com/news/10036.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySql数据库基础之分组查询详解
    目录1. group by2. having1. group by 找出每个工作岗位的工资和? 思路:先按照工作岗位分组,然后对工资进行求和。 mysql> sele...
    99+
    2024-04-02
  • MySQL数据库分组查询group by语句详解
    一:分组函数的语句顺序 1 SELECT ... 2 FROM ... 3 WHERE ... 4 GROUP BY ...
    99+
    2024-04-02
  • mysql如何分别按年/月/日/周分组统计数据详解
    目录1.统计2.占位符补充:mysql如何指定日期按周分组,并按次数分类统计总结1.统计 我们可以使用date_format()函数格式化时间,然后进行分组操作 例如有一个学生表,结构如下 idnameageheight...
    99+
    2022-12-15
    mysql分组统计数据 mysql数据查询 mysql统计数据
  • MySQL必备基础之分组函数 聚合函数 分组查询详解
    目录一、简单使用二、搭配DISTINCT去重三、COUNT()详细介绍四、分组查询一、简单使用 SUM:求和(一般用于处理数值型) AVG:平均(一般用于处理数值型) MAX:最大(...
    99+
    2024-04-02
  • mysql 数据汇总与分组
    我们经常需要汇总数据而不用把它们实际检索出来,为此MySQL提供了专门的函数。使用这些函数,MySQL查询可用于检索数据,以便分析和报表生成。 这种类型的检索例子有以下几种: ...
    99+
    2024-04-02
  • mysql 分组后取每组最新数据
    统计业务情况下,需要分组取最新,下面记录两种mysql写法 方式一:使用 MAX() 函数来实现该功能 SELECT* FROMd_switch_heart WHEREcreate_t...
    99+
    2023-08-31
    sql
  • 【MySQL】MySQL information_schema 数据库详解
    MySQL information_schema 数据库详解 1. information_schema 简介2. information_schema 数据库中的表说明2.1 CHARACT...
    99+
    2023-10-23
    数据库 mysql sql
  • mysql分组后如何拿到每组数据
    在MySQL中,您可以使用GROUP BY子句对数据进行分组,并使用聚合函数如COUNT、SUM等对每个组进行聚合操作。如果您想要取...
    99+
    2024-04-20
    MySQL
  • MySQL时间分组:按小时统计数据(mysql按小时分组)
    MySQL时间分组是一类涉及MySQL数据库的SQL语句,能够以小时对数据进行分组统计。 比如,如果你想根据一定的时间间隔,把MySQL数据库中的记录分成几组,那么MySQL时间分组技术就派上用场了。 MySQL时间分组主要使用MySQL语...
    99+
    2023-08-16
    mysql
  • MYSQL INNODB 组合索引分支节点数据解析
    1、本文证明组合索引的所有键值在分支节点(非叶子结点也进行了存储)。 2、本文给出B+ 索引如何进行验证其B+树结构 关于B树结构(不是B+树)可以参考: http://blog.itpub.net/77...
    99+
    2024-04-02
  • 【mysql】—— 数据类型详解
    序言: 本期我将大家认识关于 mysql 数据库中的基本数据类型的学习。通过本篇文章,我相信大家对mysql 数据类型的理解都会更加深刻。 目录 (一)数据类型分类 (二)数值类型 1、tinyint类型 2、bit类型 3、小数类型 ...
    99+
    2023-08-31
    mysql 数据库
  • MySQL入门 - 数据分组之 group by
    作者:汤圆学Java 个人博客:https://www.javalover.cc/ 前言 group by 用来对数据进行分组,即按照指定的字段或者表达式进行分组; 目录 group by 语句介绍...
    99+
    2023-09-08
    mysql 数据库 sql
  • MySQL分类排名和分组TOPN实例详解
    目录表结构题目一:获取每个科目下前五成绩排名(允许并列) 分析:题目二:获取每个科目下最后两名学生的成绩平均值分析:题目三:获取每个科目下前五成绩排名(不允许并列)&nbs...
    99+
    2024-04-02
  • Mysql 查询分组数据中每组某一数值最大的数据
    方法一、将时间进行排序后再分组 该表表名为customer,  park_id表示园区id,joined_at表示用户的加入时间,created_at表示用户的创建时间。 需求:查出每个园区中,最早加入园区的第一位用户 selec...
    99+
    2023-09-06
    mysql 数据库 sql
  • 如何在Flask中实现数据分组流程详解
    【数据库模型类】 class ConColumn(db.Model): __tablename__='content_column' id = db.Column(d...
    99+
    2023-05-19
    Flask数据分组 Flask分组数据
  • Python组合数据类型详解
    目录集合元组创建方式列表操作函数操作方法 列表的引用字典查找修改和添加字典的操作函数字典的操作方法 集合 创建集合有两种方式: 第一种: T = {11,111,"11"}...
    99+
    2024-04-02
  • MySQL分组查询数据怎么实现
    要在MySQL中实现分组查询数据,可以使用GROUP BY子句来分组查询结果。以下是一个简单的示例: 假设我们有一个名为studen...
    99+
    2024-04-02
  • mysql按照日期分组统计数据
    目录 前言按天统计按周统计按月统计按年统计date_format参数 前言 mysql的date_format函数想必大家都使用过吧,一般用于日期时间转化 # 例如select...
    99+
    2023-10-18
    mysql 数据库
  • 详解mysql表数据压缩
    目录【第一部分】一、表压缩概述:二、使用表的压缩三、InnoDB表的压缩优化1、何时用压缩表2、数据特性及压缩率3、数据库压缩和应用程序压缩4、工作负载特性和压缩率四、INNODB表...
    99+
    2024-04-02
  • MySQL数据库的数据类型decimal详解
    在MySQL数据库中,decimal数据类型用于存储精确的小数值。它比其他浮点类型(如float和double)更适合用于存储货币金...
    99+
    2023-09-14
    MySQL
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作