首页 > 解决方案 > 对父字段按 v Max() 或 MIN() 分组

问题描述

如果我有一个父子关系,并且我希望从子表中获取一个聚合,count(*)、SUM() 并不重要。

但我也希望从父表中返回多个字段,我可以按所有父字段分组或按父项的主键分组,并在不在主键中的父字段周围使用 MIN()。

问题是哪个最有效?

按所有父字段分组或将它们作为 Min(ParentFieldnnn) 作为 ParentFieldnnn 拉回来?

标签: sqlsql-server

解决方案


按单列分组应该更有效。所以按 id 分组并使用聚合函数,例如min().

如果您在该键上有一个索引,这实际上会更有效。

当您有一堆键时,数据库通常会对所有键进行排序或散列 - 因此需要移动所有数据。


推荐阅读