MYSQL 学习笔记记录整理之二:分组数据

1、创建分组

GROUP BY

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

注意:

GROUP BY可以包含任意数目的列

GROUP BY列出的每个列都必须是检索列或者有效的表达式(但不能是聚集函数)。如果在SELECT语句中使用表达式,则必须在GROUP BY中指定相同的表达式,不能使用别名。

除聚集计算语句外,SELECT语句中的每个列都必须在GROUP BY子句中给出。

GROUP BY必须出现在WHERE语句之后,ORDER BY语句之前。

2、过滤分组

HAVING过滤分组,WHERE过滤行。

SELECT cust_id ,COUNT(*) AS orders

FROM orders GROUP BY cust_id

HAVING COUNT(*) >=2;

COUNT(*) >=2--过滤2个以上的订单分组

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

SELECT cust_id ,COUNT(*) AS num_prods

FROM products

WHERE prod_price>=10

GROUP BY ven_id

HAVING COUNT(*) >=2;

3、分组和排序

例子:检索总订单价格大于等于50的订单号和总计订单价格

SELECT order_num,SUM(quantiy*item_price) AS ordertotal

FROM orderitems

GROUP BY order_num

HAVING SUM(quantiy*item_price)>=50;

为按总计订单价格排序输出,需要添加ORDER BY语句,如下:

SELECT order_num,SUM(quantiy*item_price) AS ordertotal

FROM orderitems

GROUP BY order_num

HAVING SUM(quantiy*item_price)>=50

ORDER BY ordertotal;

时间: 2024-08-28 07:01:27

MYSQL 学习笔记记录整理之二:分组数据的相关文章

MYSQL 学习笔记记录整理之三:子查询

1.利用子查询进行过滤 eg:假如需要列出订购物品TNT2的所有客户,具体步骤: 检索包含物品TNT2的所有订单编号 检索具有前一步骤列出的订单编号的所有客户的ID 检索前一步骤返回的所有客户ID的客户信息 上述每个步骤都可以单独作为一个查询来执行,可以把一条SELECT语句返回的结果用于另一条SELECT语句的WHERE语句.也可以使用子查询把3个查询组合成一条语句. select order_num FROM orderitems WHERE prod_id='TNT2'; 输出结果为: o

MYSQL 学习笔记记录整理之一聚集函数

函数 说明 AVG() 返回某列的平均值 COUNT() 返回某列的行数 MAX() 返回某列的最大值 MIN() 返回某列的最小值 SUM() 返回某列值之和 1.AVG()函数,可以返回所有列的平均值,也可以返回特定列或者行的平均值. 例子: SELECT AVG(prod_price) AS avg_price 别名 FROM products: 说明:返回表中所有产品的平均价格. SELECT AVG(prod_price) AS avg_price 别名 FROM products W

Activiti 学习笔记记录(二)

上一篇:Activiti 学习笔记记录 导读:对于工作流引擎的使用,我们都知道,需要一个业务事件,比如请假,它会去走一个流程(提交申请->领导审批---(批,不批)---->结束),Activiti就是来走这个流程的.所以我们还需要将Activiti 和 业务结合起来,即部署定义(画一个流程图,生成 bpmn 格式的文件).本章,就来讲 bpmn 的图怎么画? 一.什么是 bpmn 业务流程建模标记法 BPMN (Business Process Model and Notation),是工作

MySQL学习笔记-操作数据表中的记录

MySQL学习笔记-操作数据表中的记录 1.插入记录 INSERT INSERT [INTO] tbl_name [(col_name,...)] {VAULES|VALUE} ({expr|DEFAULT},...),(...),... 例,插入单条记录: mysql> USE testDatabase changed mysql> CREATE TABLE users(    -> id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,   

Mysql学习笔记(二)数据类型 补充

原文:Mysql学习笔记(二)数据类型 补充 PS:简单的补充一下数据类型里的String类型以及列类型... 学习内容: 1.String类型 2.列类型存储需求 String类型: i.char与varchar char与varchar的类型相似,但是他们的保存方式和检索方式不同... char的存储结构是固定长度的存储...即指定了几个字节,那么就占用几个字节,如char(4),那么无论存入的是什么字串,那么都占用四个字节...char的 可表示长度范围为0-255的任何值,当保存的字节不

MySql学习笔记(一)之DQL常用查询

MySql学习笔记(一)之DQL常用查询 前言:mysql是中小型的数据库软件,SQL语言分为DDL,DCL,DML,DQL四种,在这里重点讲解DQL的单表查询. 正文:在学习mysql单表查询之前,我们先做一些准备工作. 需要安装的软件如下: 1.mysql,版本可以选择5.1或者5.5,安装过程可以参考博客:http://www.cnblogs.com/ixan/p/7341637.html 2.mysql图形化管理软件:Navicate,sqlyog(二选一,推荐使用sqlyog). 本文

Mysql学习笔记(三)对表数据的增删改查。

写在前面:(一些牢骚,可以直接跳到分割线后) 太过敏感的人不会快乐,不幸的是我正是这种性格的人. 从培训机构毕业后,迫于经济方面的压力,和当时的班里的一个同学住在了一起,我们在一个公司上班.谁知道这都是不开心生活的源头,从每天早晨开始心情就很糟糕.他是个脾气很慢的人,我是个急脾气,特别是在早上上班的时候.由此种种吧,实在是不胜枚举.算了,还是不说了,太痛苦了,我不太喜欢说别人的坏话.我是学心理学的,已经用各种方法去安慰自己,但是都不太奏效. 回想以往和朋友的交往中,我虽然不算十分合群的人,但绝对

MySQL学习笔记之一 MySQL入门

本人之前接触的关系型数据库主要是oracle和sqlserver,而对于mysql知之甚少,但查阅网上资料发现,mysql与oracle非常相似,所以学起来应该不会很费劲,在总结的时候可能更多的把关注点放在它与oracle的不同之处. 一.简介 MySQL是一个真正的多用户.多线程SQL数据库服务器.SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言.MySQL是一个客户端/服务器结构的实现, 它由一个服务器守护程序mysqld和很多不同的客户程序和库组成. MySQL的普及并不局限于

MySQL学习笔记之五 有关数据表操作

MySQL在创建表的时候,创建一个.frm文件保存表和列定义.索引存储在一个有.MYI(MYindex)扩展名的文件并且数据存储在有.MYD(MYData)扩展名的文件中.   一.用SHOW/ DESCRIBE语句显示数据表的信息 语法: SHOW TABLES [FROM db_name] [LIKE wild] or SHOW COLUMNS FROM tbl_name [FROM db_name] [LIKE wild] or SHOW INDEX FROM tbl_name [FROM