MySQL之分组数据
2018-02-11 11:57
169 查看
1:数据分组
下列例子返回供应商1003提供的产品数目:
但如果要返回每个供应商提供的产品数目怎么办?或者返回之提供单项产品的供应商所提供的产品,或返回提供10个以上的产品的供应商怎么办?
这时就需要用到分组了,分组允许把数据分为多个逻辑组,以便能对每个组进行聚集计算。
2:过滤分组(having是用来过滤特定的分组的)
having和where的功能是类似的,唯一的区别是where过滤行,而having过滤分组。
where是在数据分组前进行过滤,having是在数据分组后进行过滤的。
例:列出具有2个以上、价格为10以上的产品的供应商:
3:分组和排序 group by order by
一般在使用group by子句时,应该也给出order by子句,这是保证数据正确排序的唯一方法,千万不要仅依赖group by排序数据。
下列例子返回供应商1003提供的产品数目:
select count(*) as num_prods from products where vend_id=1003
但如果要返回每个供应商提供的产品数目怎么办?或者返回之提供单项产品的供应商所提供的产品,或返回提供10个以上的产品的供应商怎么办?
这时就需要用到分组了,分组允许把数据分为多个逻辑组,以便能对每个组进行聚集计算。
select vend_id,count(*) as num_prods from products group by vend_id;
2:过滤分组(having是用来过滤特定的分组的)
having和where的功能是类似的,唯一的区别是where过滤行,而having过滤分组。
where是在数据分组前进行过滤,having是在数据分组后进行过滤的。
例:列出具有2个以上、价格为10以上的产品的供应商:
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
一般在使用group by子句时,应该也给出order by子句,这是保证数据正确排序的唯一方法,千万不要仅依赖group by排序数据。
相关文章推荐
- mysql实现分组排序,获取第N条数据
- MySQL实践-数据分组和过滤
- MySql按周/月/日分组统计数据的方法
- mysql分组查询最大的数据
- MySQL之数据查询语法(DQL)--(7)分组查询
- PHP+MySQL对当月,当周,当日数据统计,并将相应字段分组排序
- Mysql数据分组GROUP BY 和HAVING,与WHERE组合使用
- mysql使用group by分组数据使用总结
- MySQL Group By 数据分组-- 陷阱
- Mysql分组合并函数并进行数据列处理
- MySql按周,按月,按日分组统计数据
- MySql按周,按月,按日分组统计数据
- mysql分组查询并只显示每组数据的前N条数据
- Mysql高级查询-----汇总和分组数据
- MySQL对数据表进行分组查询(GROUP BY)
- mysql分组后取前几条数据
- mysql查询获取分组后最新的一条记录,策略:先排序,然后在次分组查询(默认第一条),就是最新的一条数据了
- mysql中group by分组后查询无数据补0;
- MySql按周,按月,按日分组统计数据
- MySQL基础(3)——计算字段、处理函数、聚集函数和数据分组