MySQL分组数据

SQL分组查询技巧

分组定义:按照特定的列进行分组查询,使用GROUP BY子句进行分组查询。

注意:

  • SELECT后面的列必须出现在group by子句后面,否则报语法错误;
  • 通常group by子句的位置是where条件之后,order by子句之前。

1. 分组求和

插入一条梨的数据(peoduct_id为4):

 

SELECT product_name, SUM(price) FROM product GROUP BY product_name;
  • 语句分析:先根据商品名称分为三组 苹果、梨、香蕉;再根据不同的分组求和

  • 结果:

 

2. 分组过滤

SELECT COUNT(*) FROM `order` GROUP BY user_id HAVING COUNT(*) > 1;
  • 语句分析:查询订单表,根据用户id分组,过滤条件条数大于2

  • 注意:having 与 where 其实差别不大:

    • where通常当做标准的过滤条件
    • having用作分组过滤条件
    • 有的数据库管理系统having不支持别名作为分组过滤条件中的一部分
  • 结果:

 

3. 分组排序

SELECT COUNT(*) as count FROM `order` GROUP BY user_id ORDER BY count;
  • 语句分析:查询订单表,根据客户id分组,根据 行数 排序

  • 注意点:经过分组后结果看似经过排序,其实并不能确保是排序后的结果,所以要排序一定要使用order by子句

  • 结果:

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值