数据分组
select vend_id count(*) as num_prods from products group by vend_id;
- 使用Group By子句可以包含任意数目的列,这使得能对分组进行嵌套,为数据分组提供更细致的控制
- 除聚集(avg,count,max,min,sum)计算语句外,select语句中的每个列都必须在Group BY子句中给出
- Group by子句必须在where子句之后,order by之前
- group by子句中列出的每个列都必须是检索列或者有效的表达式(但不能是聚集函数)。如果select中使用表达式,则必须在Group by子句中使用相同的表达式,不能使用别名。
使用ROLLUP
使用with rollup关键字,可以得到每个分组及每个分组汇总级别(针对每个分组的值)
过滤分组
where不能进行分组,where没有分组的概念。
Mysql提供了Having字句,Having与where非常类似,唯一区别就是Having过滤分组,而where过滤行
查看下单两次以上的顾客id
分组和排序
一般在使用Group by子句的时候,应该也给出Order by子句。