9、mysql分组查询-----group by 和 having
举例说明:有 Store_Information 表
之前我们根据这个表,用函数可以算出sales的总和,平均数等
如果现在我们需要算出每一间店(store_name)的销售总额(sales)呢?
比如:
1、los angeles 销售额加起来是 18000
san diego 销售额加起来是 250
这时候我们就需要用到了 group by语句了
1、group by
语法:
select 栏位名1,栏位名2 from 表格名 group by 栏位1
说明:
1、by 后面的栏位1,说明是依据栏位1的进行分组,如果有重复的则合并到一组数据中
举例说明
1、根据store_name 来进行分组,算出每个 store_name(店铺) 的sales(销售额)总和
select store_name,sum(sales) from Store_Information GROUP BY store_name
结果为:
从上面的结果,我们可以看到,依据store_name 算出了 sales 的总和
2、依据上面的结果,我们如果想筛选出store_name 等于 los angeles 的数据呢?加where ?
这时候,又涉及到了一个语句 having
2、having
语句:
select 栏位名1,栏位名2 from 表格名 group by 栏位1 having 函数条件
作用:
where 关键字无法与函数一起使用,所以就有了having 子句
举例说明:
回答上面那个问题2。。
select store_name,sum(sales) from Store_Information GROUP BY store_name HAVING SUM(sales)>1500
结果为:
having 后面 加了条件 sum(sales) > 1500