当前位置:首页 > SQL > 正文内容

groupby 汇总

高老师7年前 (2019-01-30)SQL1637

现在有张表products是产品表,vend_id是供应商id,prod_price是供应价格,现在需要统计每个供应商供应了多少商品,供应商品的平均价格,sql如下:

SELECT
	vend_id,
	AVG( prod_price ),
	COUNT( * ) AS num_prods 
FROM
	products 
GROUP BY
	vend_id

输出结果如下:

vend_id	   AVG(prod_price)	num_prods
1001	   10.323333	        3
1002	   6.205000	        2
1003	   13.212857	        7
1005	   45.000000	        2

然后我们还想统计平均值总和、汇总商品数,sql如下:

SELECT
	vend_id,
	AVG( prod_price ),
	COUNT( * ) AS num_prods 
FROM
	products 
GROUP BY
	vend_id WITH ROLLUP

多增加一个WITH ROLLUP即可实现汇总字段,结果如下:

vend_id	   AVG( prod_price )	num_prods
1001	   10.323333	        3
1002	   6.205000	        2
1003	   13.212857	        7
1005	   45.000000	        2
	   16.133571	        14

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/322.html

分享给朋友:

“groupby 汇总” 的相关文章

MySQL中的where和having的区别

MySQL中的where和having的区别

   where与having非常类似.都能筛选数据.表达式完全一致.    但是职责的确不同.where负责对表中的字段进行筛选,having负责对where筛选后的结果集再次筛选。这也就是where不能使用别名字段来筛选的原因,因为数据中没有这个字段。&n...

Mysql exists型子查询

Mysql exists型子查询

需求查询出存在商品的商品分类.    先看看分类表:id(分类的id)    catename(分类名) 1         手机 2 &n...

主键primary key是否必须和auto_increment 一起出现

主键primary key是否必须和auto_increment 一起出现

    一般情况下,绝大部分,我们的主键是数字,1 2 3 4...所以我们才让它递增.这并不意味着,他们两个必须要绑定在一起使用.例如我还想将用户表的email字段设置为主键,但是并没有必要为其设置自增。    因此可...

 mysql储存引擎,mysql的5种储存引擎

mysql储存引擎,mysql的5种储存引擎

1.MyISAM 建立一个MyISAM引擎的表时,就会在本地磁盘上建立三个文件,.frm格式文件,存储表定义;.MYD格式文件,存储数据;MYI格式文件,存储索引;方便数据迁移,我只需将mysql安装目录下data文件中的表文件复制即可完成数据迁移,之前在搬迁多个dedecms中深有体会。 ...

mysql diff,mysqldiff 安装,mysqldiff 用法

mysql diff,mysqldiff 安装,mysqldiff 用法

项目和第三方系统对接,由于第三方开发人员属于兼职,数据库结构不一致的问题只能我来处理。此处文章用本地模拟演示。数据库资料:1号服务器:  账号root 密码root  IP:127.0.0.1  数据库名称:data1 2号服务器...

inner join 和 form a,b区别和速度

inner join 和 form a,b区别和速度

在项目中发现大量的form连接表,就开始质疑inner join 和 form a,b的性能问题。找到一份有价值的资料,特别记录:ANSI SQL规范首选INNER JOIN语法。此外,尽管使用WHERE子句定义联结的确比较简单,但是使用明确的联结语法能够确保不会忘记联结条件,有时候这样做也能影响性...