sql group by详解及简单实例(SQL学习查询之GROUP)
sql group by详解及简单实例(SQL学习查询之GROUP)group by product 将product 相同的元素聚合在一起,去掉重复列,那么price将没有意义。select product price from orders 查询所有的product列值,包括重复的。如果两个bb合在一起的话,那么price就查不出来 了,如下:各种语句的测试:select product from orders 查询所有product列,包括重复的。select product from orders GROUP BY product:查询结果只输出product不同的元素列,不包括重复的。
group by 从英文里理解就是分组。必须有“聚合函数”来配合才能使用,使用时至少需要一个分组标志字段。
注意:sum()、count()、avg()等都是“聚合函数”。
为什么group by必须要用聚合函数?
数据库表:
各种语句的测试:
select product from orders 查询所有product列,包括重复的。
select product from orders GROUP BY product:查询结果只输出product不同的元素列,不包括重复的。
select product price from orders 查询所有的product列值,包括重复的。如果两个bb合在一起的话,那么price就查不出来 了,如下:
group by product 将product 相同的元素聚合在一起,去掉重复列,那么price将没有意义。
只有聚合在一起的东西才有意义,如聚合在一起的price之和(sum(price))就有意义了。
select product sum(price) from orders GROUP BY product :这样才不会报错。
select product sum(price) from orders GROUP BY product
注意,GROUP BY product就是按 product分组,那么重复的aa就会聚集在一起,那么如果要继续查找 select product price 继续查找price的话,price就不存在了。因为重复的aa聚合在一起了。所以只能用一些聚合函数来实现,sum(price)
那么group by之后还要筛选一下sum(price) >100的product呢?
可以用:havaing,having就是专门为了应付这种情况而发明出来的。
select product sum(price) from orders GROUP BY product HAVING sum(price)>100
注释:本文来源于网络,如侵权,请联系删除!