9:msyql分组group与统计函数

mysql统计函数

count() 计算行数

avg() 求平均函数

sum() 求总和

min() 求最小

max() 求最大

 

1. 查询所有商品的平均价格

  1. select avg(shop_price) from goods;

 

2. 查询最贵的商品

  1. select max(shop_price) from goods;

 

3. 查询最便宜的商品

  1. select min(shop_price) from goods;

 

4. 查询一共有多少种商品

  1. select count(*) from goods;

 

5. 查询商品的总价格

  1. select sum(shop_price) from goods;

 

6. 查询本店积压的商品总货款

  1. select sum(shop_price*goods_number) from goods;

 

经常统计的时候是分组统计 group by

 

1. 帮我统计每个栏目下商品的平均价格

  1. select cat_id,avg(shop_price) from goods group by cat_id;

分组查询 , 一半是比较耗费资源的 , 因为数据会先按照分组进行排序 , 再筛选出你所需的内容出来 ; 如果索引建立的比较巧妙 , 在分组的时候有可能根据索引不需要排序 ;所以分组计算能避免则避免 , 它比较浪费资源 ;

 

2. 查询每个栏目下有多少种商品

  1. select cat_id,count(*) from goods group by cat_id;

 

3. 查询每个栏目下最贵的商品价格

  1. select cat_id,max(shop_price) from goods group by cat_id;

 

4. 查询每个栏目下商品的库存量

  1. select cat_id,sum(goods_number) from goods group by cat_id;

 

例如:还有其它的,像最贵商品价格、最低商品价格、商品平均价格、商品库存量、商品种类查询这些原理都是相通的;只需要用相关的函数即可!

mysql group

 

注意事项:

  1. select goods_id,cat_id,sum(goods_number) from goods group by cat_id;

以上这个语义的有问题的 , 不合法的,虽然说也能取出数据,但是是不正确的数据;

解释:我们按照分组筛选取出 cat_id, 如果我们想取 goods_id, 那么会显示什么呢 ? 按照栏目分组 , 那我们取出的每个栏目下的 cat_id 肯定是一样的 , 但是每个栏目下的商品的 goods_id 是不同的 , 如果我想取出 goods_id, 那会是哪个商品的 goods_id 呢 ?

    A+
发布日期:2017年01月16日 14:10:10  所属分类:mysql教程
最后更新时间:2017-01-16 14:11:19
付杰
  • ¥ 199.0元
  • 市场价:399.0元
  • ¥ 388.0元
  • 市场价:388.0元
  • ¥ 0.0元
  • 市场价:99.0元
  • ¥ 58元
  • 市场价:58元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: