group by 用于分组,客串去重(结果只有一个分组的时候等于去重)
distinct 用于去重
在普通查询语句上功能差不多
如
select * from order_goods group by order_sn;
select distinct order_sn from order_goods;
但是在统计方面有点区别
group by + count
select o.order_sn,count(o.order_sn) as num from order o left join order_goods o_g on o.order_sn = o_g.order_sn where o_g.price > 1 group by o.order_sn;
结果:
[order_sn1 , 11],
[order_sn2 , 21]
distinct + count
select count(dectinct o.order_sn) as num from order o left join order_goods o_g on o.order_sn = o_g.order_sn where o_g.price > 1;
结果:
num => 32
本文详细对比了SQL中groupby与distinct的功能差异,特别是在分组与去重操作上的应用,以及它们在统计场景中的不同表现。通过具体示例,展示了如何使用这两种方法进行数据处理。
1万+

被折叠的 条评论
为什么被折叠?



