返回顶部
首页 > 资讯 > 数据库 >详解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://lsjlt.com/news/10036.html(转载时请注明来源链接)

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

猜你喜欢
  • 详解MySQL 数据分组
    创建分组 分组是在SELECT语句中的GROUP BY 子句中建立的。 例: SELECT vend_id, COUNT(*) AS num_prods FROM products GROUP BY v...
    99+
    2022-05-27
    MySQL 分组 MySQL 数据分组
  • MySQL数据库学习之分组函数详解
    目录1.分组函数极值求和平均值列数和2.分组查询3.小练习4.大BOSS1.分组函数 极值 示例表内容见此篇文章 找出最高工资: mysql> select max(sal) from emp; +---...
    99+
    2022-07-24
    MySQL数据库分组函数 MySQL分组函数
  • 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数据库:group分组
    group by:分组 GroupBy语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”。它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。 # group by 字段名...
    99+
    2019-11-16
    MySQL数据库:group分组
  • 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查询过程中,可以对数据进行过滤,也可以对数据进行排序,可以对数据分组,下面分别讲述排序数据和分组数据例子。 1,数据的排序 使用 ORDER BY select *...
    99+
    2024-04-02
  • mysql怎么统计数据分组
    mysql 使用 group by 子句分组统计数据,其语法为:select kolom_yang_ingin_dikelompokkan, fungsi_agregasi(k...
    99+
    2024-05-30
    mysql 聚合函数
  • mysql分组后如何拿到每组数据
    在MySQL中,您可以使用GROUP BY子句对数据进行分组,并使用聚合函数如COUNT、SUM等对每个组进行聚合操作。如果您想要取...
    99+
    2024-04-20
    MySQL
  • 【MySQL】MySQL information_schema 数据库详解
    MySQL information_schema 数据库详解 1. information_schema 简介2. information_schema 数据库中的表说明2.1 CHARACT...
    99+
    2023-10-23
    数据库 mysql sql
  • 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分类排名和分组TOPN实例详解
    目录表结构题目一:获取每个科目下前五成绩排名(允许并列) 分析:题目二:获取每个科目下最后两名学生的成绩平均值分析:题目三:获取每个科目下前五成绩排名(不允许并列)&nbs...
    99+
    2024-04-02
  • MySQL入门 - 数据分组之 group by
    作者:汤圆学Java 个人博客:https://www.javalover.cc/ 前言 group by 用来对数据进行分组,即按照指定的字段或者表达式进行分组; 目录 group by 语句介绍...
    99+
    2023-09-08
    mysql 数据库 sql
  • 根据日,周,月分组统计mysql数据
    下面讲讲关于根据日,周,月分组统计mysql数据,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完根据日,周,月分组统计mysql数据这篇文章你一定会有所受益。根据日统计:sele...
    99+
    2024-04-02
  • 【mysql】—— 数据类型详解
    序言: 本期我将大家认识关于 mysql 数据库中的基本数据类型的学习。通过本篇文章,我相信大家对mysql 数据类型的理解都会更加深刻。 目录 (一)数据类型分类 (二)数值类型 1、tinyint类型 2、bit类型 3、小数类型 ...
    99+
    2023-08-31
    mysql 数据库
  • Mysql 查询分组数据中每组某一数值最大的数据
    方法一、将时间进行排序后再分组 该表表名为customer,  park_id表示园区id,joined_at表示用户的加入时间,created_at表示用户的创建时间。 需求:查出每个园区中,最早加入园区的第一位用户 selec...
    99+
    2023-09-06
    mysql 数据库 sql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作