Mysql语法之分组数据

作者: etron_jay | 来源:发表于2019-08-04 17:06 被阅读11次

如何分组数据,以便能汇总表内容的子集。这涉及两个新SELECT语句子句,分别是GROUP BY子句和HAVING子句。

一、数据分组

分组允许把数据分为多个逻辑组,以便能对每个组进行聚集计算。

二、创建分组

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

来看例子理解:

mysql>select vend_id,COUNT(*) AS num_prods from products group by vend_id;

也就是不同的Id的商品总数都能分别查出来。

三、过滤分组

除了能用GROUP BY分组数据外,Mysql还允许过滤分组,规定包括哪些分组,排除哪些分组。

也就是HAVING子句。

HAVING非常类似于WHERE。事实上,目前为止所学过的所有类型的WHERE子句都可以用HAVING来替代。<u>唯一的差别是WHERE过滤行,而HAVING过滤分组。</u>

mysql>select cust_id,COUNT(/) AS orders from orders <u>GROUP BY</u> cust_id <u>HAVING</u> COUNT(/) >=2;

注意:这里HAVING换成WHERE是不管用的。HAVING针对于分组。

WHERE在数据分组前进行过滤,HAVING在数据分组后进行过滤。

那么咱么看看怎么混合WHERE和HAVING。

mysql>select vend_id, COUNT(/) AS num_prods from products <u>where prod_price>=10 group by</u> vend_id HAVING COUNT(/) >=2;

四、分组和排序

不要忘记ORDER BY ,一般在使用GROUP BY 子句时,应该也给出ORDER BY 子句。这是保证数据正确排序的唯一方法。千万不要仅依赖GROUP BY排序数据。

mysql>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 从中检索数据的表 仅在从表选择数据时使用
WHERE 行级过滤
GROUP BY 分组说明 仅在按组计算聚集时使用
HAVING 组级过滤
ORDER BY 输出排序顺序
LIMIT 要检索的行数

相关文章

  • MySQL实战 目录

    MySQL实战 MySQL实战1 数据库概念介绍MySQL实战2 语法、筛选条件和函数MySQL实战3 分组查询和...

  • Mysql语法之分组数据

    如何分组数据,以便能汇总表内容的子集。这涉及两个新SELECT语句子句,分别是GROUP BY子句和HAVING子...

  • 1-(2)、MySql——基础部分

    一、MySQL之函数(单行函数、分组函数) 1、概述 调用语法:select函数名(实参列表);分组函数和单行函数...

  • MySQL学习笔记一之MySQL语法

    title: MySQL学习笔记一之MySQL语法tags: MySQL 数据库categories: MySQL...

  • mysql中的分组

    mysql中分组查询就是将表中一系列字段相同的进行分组。语法select 字段,function(字段) as (...

  • 分组的过滤方式

    1、分组 分组允许数据分为多个逻辑组,以便能对每个组进行聚集计算。 GROUP BY子句指示MYSQL分组数据,然...

  • MySql 分组数据

    创建分组 分组是在select语句的group by字句中建立的。 举例:select vend_id, coun...

  • MySQL分组数据

    这涉及两个新SELECT语句子句,分别是GROUP BY子句和HAVING子句。 1. GROUP BY ...

  • MySQL分组数据

    1. GROUP BY子句GROUP BY子句可以包含任意数目的列,使得能对分组进行嵌套,嵌套后的分组将在最后的分...

  • 【MySQL必知必会】学习笔记Day6

    【MySQL必知必会】学习笔记Day6&1.28&D13章&P83-89页 11、分组数据 (1) 数据分组 分组...

网友评论

    本文标题:Mysql语法之分组数据

    本文链接:https://www.haomeiwen.com/subject/rquydctx.html