MySQL必知必会 第13章 分组数据

1. 创建分组

使用GROUP BY子句

  • GROUP BY子句能包含任意数量的列
  • 如果在GROUP BY子句中嵌套了分组,数据将在最后规定的分组上进行汇总
  • 如果在SELECT中使用表达式,则必须GROUP BY子句指定相同的表达式,不能使用别名
  • 如何分组列中具有NULL,NULL将作为一个分组返回
  • GROUP BY在WHERE子句之后,在ORDER BY子句之前

2. 过滤分组

注意:WHERE过滤行,HAVING过滤分组,组合时候时注意被WHERE子句排除的行不会影响HAVING处理结果

SELECT vend_id, COUNT(*) AS num_prods
FROM products
WHERE prod_price >= 10
GROUP BY vend_id
HAVING COUNT(*) >= 2;

3. 分组和排序

不要依赖于GROUP BY的默认排序,指定顺序需要用ORDER BY

SELECT order_num, SUM(quantity*item_price) AS ordertotal
FROM orderitems
GROUP BY order_num
HAVING SUM(quantity*item_price) >= 50
ORDER BY ordertotal;

4. SELECT子句顺序

子句参数或说明是否必须使用
SELECT要返回的列或表达式
FROM从中检索的表从表中选择数据是需要
WHERE行级过滤
GROUP BY分组说明仅在按组计算时使用
HAVING组级过滤
ORDER BY按什么排序
LIMIT要检索的行数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值