sql分组查询和聚合查询的区别(sql将查询数据生成一张表)

1 分组聚合的原因

SQL中分组函数和聚合函数之前的文章已经介绍过,单说这两个函数有可能比较好理解,分组函数就是group by,聚合函数就是COUNT、MAX、MIN、AVG、SUM。

sql分组查询和聚合查询的区别(sql将查询数据生成一张表)

从图中可以看出被分为了三组,分别为厨房用具、衣服和办公用品,就相当于对product_type这个字段进行了去重,确实group by函数有去重的作用。

SELECT DISTINCT product_type from product

假设分组之后,我想看一下价格,也就是sale_price这个字段的值,按照如下这个写法,会报如下错误。

SELECT product_type,sale_price from productgroup by product_type

sql分组查询和聚合查询的区别(sql将查询数据生成一张表)

sql分组查询和聚合查询的区别(sql将查询数据生成一张表)

多个字段去重

--DISTINCTSELECT distinct product_name, product_type from product--GROUP BYselect product_name, product_type from productGROUP BY product_name, product_type

sql分组查询和聚合查询的区别(sql将查询数据生成一张表)

SQL语言的运行顺序,先执行上图中的第一步,然后再执行select子句,最后对结果进行筛选。distinct是在select子句中,而group by在第一步中,所以group by去重比distinct去重在效率上要高。

(0)
小多多的头像小多多创始人

相关推荐

发表回复

登录后才能评论