木原“在功能上,对您所提问题的回答是正确的;SQL Server很聪明地意识到,如果您使用的是”Group by“而没有使用任何聚合函数,那么实际上您的意思是”不同的“-因此它生成一个执行计划,就好像您只是使用了”DISTISTION“一样。”不过,我认为值得注意的是汉克如果你不小心的话,对“Groupby”和“DISTION”的轻率处理可能会导致一些有害的问题。说这不是“关于聚合的问题”是不完全正确的,因为您在询问两个SQL查询关键字之间的功能差异,其中之一是用于聚合其中一个不是。有时锤子可以用螺丝钉驱动,但如果你手头有螺丝刀,为什么还要麻烦呢?(就本类推而言,Hammer : Screwdriver :: GroupBy : Distinct和screw => get list of unique values in a table column)
GROUP BY允许您使用聚合函数,如AVG, MAX, MIN, SUM,和COUNT..另一方面DISTINCT只是移除重复的。例如,如果您有一堆采购记录,并且想知道每个部门花费了多少,您可以这样做:SELECT department, SUM(amount) FROM purchases GROUP BY department这将为每个部门提供一行,其中包含部门名称和所有amount值在该部门的所有行中。