广州番禺Python, Java小班周末班培训
薯条老师在广州做Python和Java的小班培训,一个班最多10人,学员的平均就业薪资有11K。不在广州的同学提供住宿,免住宿费,也可以报名线上直播班,跟线下小班的同学们同步学习。培训的课程有Python爬虫,Python后端开发,Python办公自动化,Python大数据分析,Python量化投资,Python机器学习,Java中高级后端开发。授课详情请点击:http://chipscoco.com/?cate=6
5.6.1 SELECT的GROUP BY查询
所谓分组查询,是指将查询到的结果根据一个或多个列进行分组。
SQL语法1:
SELECT expr FROM tbl_references GROUP BY expr;
在分组查询中,可以对每组结果进行聚合统计,常用的统计量有总数,均值,最大值,最小值等。下表所示为MySQL中常用的聚合函数:
聚合函数 | 描述 |
---|---|
count | 统计数据总数 |
max | 统计最大值 |
min | 统计最小值 |
avg | 统计平均值 |
在使用聚合函数时,需将待聚合统计的列名作为参数进行传递,也可以直接使用通配符*或任意数字进行代替(通常为1),例如count(*)或count(1)。
SQL语法2:
SELECT expr FROM tbl_references GROUP BY expr HAVING where_condition
在分组查询中可以通过HAVING关键字对分组后的结果进行筛选,HAVING后的where_condition表示筛选条件。having同where的主要区别在于,having是对分组查询后的结果进行筛选,而where是对分组前的所有记录进行筛选,即先执行where,再执行having。
5.6.2 SELEC GROUP BY查询实例
(1)查询商品表中的记录,根据name字段进行分组,并统计每组的数量
mysql> select name,count(*) from goods group by name; +--------------+----------+ | name | count(*) | +--------------+----------+ | 黑人牙膏 | 1 | | 云南白药 | 4 | | 青岛啤酒 | 1 | | 湖南辣条 | 1 | +--------------+----------+ 4 rows in set (0.00 sec)
(2) 查询商品表中的记录,根据name字段进行分组,并统计每组的数量,价格总和,价格的平均值
mysql> select name, sum(price), count(price), avg(price) from goods group by name; +--------------+------------+--------------+------------+ | name | sum(price) | count(price) | avg(price) | +--------------+------------+--------------+------------+ | 黑人牙膏 | 25 | 1 | 25 | | 云南白药 | 89 | 4 | 22.25 | | 青岛啤酒 | 28 | 2 | 14 | | 湖南辣条 | 38 | 1 | 38 | +--------------+------------+--------------+------------+
(3) 基于(2),为聚合统计的每一列取一个可读性强的别名
mysql> select name as "商品名", sum(price) as "总和", count(1) as "数量",avg(price) as "均价" from goods group by name; +--------------+--------+--------+--------+ | 商品名 | 总和 | 数量 | 均价 | +--------------+--------+--------+--------+ | 黑人牙膏 | 25 | 1 | 25 | | 云南白药 | 89 | 4 | 22.25 | | 青岛啤酒 | 28 | 2 | 14 | | 湖南辣条 | 38 | 1 | 38 | +--------------+--------+--------+--------+ 4 rows in set (0.00 sec)
(4) 对分组后的结果使用HAVING子句进行筛选
统计每组中的最小价格大于20的组别的最小价格以及数量:
mysql> select name, min(price), count(price) from goods group by name having(min(price)) > 20; +--------------+------------+--------------+ | name | min(price) | count(price) | +--------------+------------+--------------+ | 黑人牙膏 | 25 | 1 | | 湖南辣条 | 38 | 1 | +--------------+------------+--------------+ 2 rows in set (0.00 sec)
(5) 先通过where子句筛选,然后再进行分组筛选
先通过where筛选掉所有id小于等于3的记录,然后再根据name字段分组统计: 统计每组中的最小价格大于20的组别的最小价格以及数量
mysql> select name, min(price), count(price) from goods where id > 3 group by name having(min(price)) > 20; +--------------+------------+--------------+ | name | min(price) | count(price) | +--------------+------------+--------------+ | 湖南辣条 | 38 | 1 | | 青岛啤酒 | 21 | 1 | +--------------+------------+--------------+ 2 rows in set (0.00 sec
5.6.3 最具实力的小班培训
薯条老师在广州做Python和Java的小班培训,一个班最多10人。不在广州的同学提供住宿,免住宿费,也可以报名线上直播班,跟线下小班的同学们同步学习。打算参加小班培训的同学,必须遵守薯条老师的学习安排,认真做作业和项目。把知识学好,学扎实,那么找到一份高薪的工作就是很简单的一件事。
(1) Python后端工程师高薪就业班,月薪11K-18K,免费领取课程大纲
(2) Python爬虫工程师高薪就业班,年薪十五万,包拿Offer
(3) 数据分析高薪就业班,月薪11K-15K, 免费领取课程大纲
(4) Python大数据挖掘,量化投资就业班,月薪12K-25K,免费领取课程大纲
扫码免费领取Python学习资料: