【发布时间】:2011-09-25 16:40:39
【问题描述】:
例如,我在不同类型的表(varchar、nvarchar、int、float、datetime 等)中有 10-15 个字段,我需要进行 GROUP BY,所以。我必须在所有这些字段上使用什么聚合功能? MAX还是别的?重要吗?
SELECT
intFacilityRTOPID,
MAX(ObjectSystem_r_Equipment) ObjectSystem_r_Equipment,
MAX(ObjectBuilding_r_Equipment) ObjectBuilding_r_Equipment,
MAX(intenum_EquipmentTypeID) intenum_EquipmentTypeID,
MAX(correctionDate) correctionDate
FROM [RTOPv4History].[dbo].[FacilityRTOP]
WHERE cast(correctionDate as bigint) <= @correctionDate
GROUP BY intFacilityRTOPID
【问题讨论】:
-
完全取决于您想要的结果!例如,对于每个
intFacilityRTOPID,您希望返回哪个可能的ObjectSystem_r_Equipment值?最大的,最小的,来自特定行的? -
只有您足够了解您的数据才能知道它是否重要。如果给定
intFacilityRTOPID的列中只有“一个值”,则 min 和 max 将返回相同的值。如果有多个不同的值,它当然会返回不同的值。这有关系吗?你告诉我。 -
是的,我的错。我知道我的错误,谢谢。
-
但是,如果对我来说没关系,我想要哪个值 bcz 他们都一样,我必须使用什么函数来聚合这些字段?
-
如果没关系,那就用你喜欢的任何东西。没关系。
标签: sql sql-server