目录
前言
GROUP BY 的基本用法
HAVING 的基本用法
《如何精准获取你想要的数据?——过滤大法好!》一文,同大家分享了过滤查询的基础语句,WHERE 过滤查询及 LIKE 模糊查询,但是这些数据查询之后可以直接用吗?有的能,有的不能。
举一个通俗的例子,咱们去菜市场买东西,花了100块钱,买了 40 块钱蔬菜,60 块钱水果,这个时候大家会有困惑,40 块钱的蔬菜里面都包含什么?土豆?大白菜?细细看了小票,12 块钱土豆,12 块钱青椒,16 块钱大白菜。刚刚将蔬菜种类细分的行为,就相当于咱们今天要学习的分组查询方法。
1、GROUP BY 语法
用途:对相关字段的统计(对 SELECT 后面的字段进行汇总)
#查询语法: SELECT 列名 ,SUM(列名 2 ) FROM db. tbl_name GROUP BY 列名;
#例子:统计各个顾客的购买金额,平均购买金额,订单数
#代码示例SELECT member_id ,SUM(order_money) AS sum_money ,AVG(order_money) AS avg_money ,COUNT(order_id) AS count_idFROM db_order.dabaicaiGROUP BY member_id;
数据结果:
2、常用聚合函数
名称 | 基本统计汇总函数含义 |
---|---|
MAX() | 统计最大值 |
MIN() | 统计最小值 |
COUNT() | 计数,如果需要对计算列进行去重,则 COUNT ( DISTINCT 列名) |
AVG() | 计算平均数 |
SUM() | 汇总数据 |
GROUP BY 小结:
1、HAVING 语法
用途:对分组统计后结果进行限制
#查询语法: SELECT 列名 ,SUM(列名 2 ) FROM db. tbl_name GROUP BY 列名 HAVING SUM(列名 2 ) 限制条件;
#例子:统计各个顾客的购买金额超过 40 的数据信息
#代码示例SELECT member_id ,SUM(order_money) AS sum_moneyFROM db_order.dabaicaiGROUP BY member_id
HAVING SUM(order_moeny)>40;
数据结果:
2、HAVING 和 WHERE 的区别
两者的作用都是限制,使用的情况却稍有不同。举一个简单的例子,一个菜筐里面堆满了蔬菜,小编今天想炒土豆片,于是来到摊主面前。
如果仅仅需要挑出土豆,则用 WHERE ,
如果需要挑出土豆,且要求土豆的重量大于 200g,则用 HAVING 。
HAVING 小结:
写在后面:其实,今天分享的两篇学习日记,有很多没有细化的部分,需要大家一起去实践,去练习,去探索,这样才会有更多的发现,更深的体会!