Sql 为某些列选择DISTINCT,为其他列选择最小值(什么是“分组依据”)
我有一个表Sql 为某些列选择DISTINCT,为其他列选择最小值(什么是“分组依据”),sql,sql-server-2008-r2,aggregate-functions,Sql,Sql Server 2008 R2,Aggregate Functions,我有一个表TableA,有两列:MyName-nvarchar(100)和MyDateTime-DateTime。每个MyName可以有多条记录,这些记录具有不同的DateTimes。我试图返回一个记录集,其中包含表中MyName的每个值,每个值都有最早的MyDateTime 这用于返回不同的MyNames: SELECT DISTINCT([MyName]) FROM TableA 我尝试了不同的UNION语句,但所有尝试都被DISTINCT()关键字抛出。例如,以下查询将查找所有时间,而不
TableA
,有两列:MyName-nvarchar(100)
和MyDateTime-DateTime
。每个MyName
可以有多条记录,这些记录具有不同的DateTime
s。我试图返回一个记录集,其中包含表中MyName
的每个值,每个值都有最早的MyDateTime
这用于返回不同的MyNames
:
SELECT DISTINCT([MyName]) FROM TableA
我尝试了不同的UNION
语句,但所有尝试都被DISTINCT()
关键字抛出。例如,以下查询将查找所有时间,而不仅仅是每个时间的最小值:
SELECT DISTINCT([MyName]), [MyDateTime] FROM TableA
努力想出正确的SQL语法来实现这一点。需要帮忙吗
SELECT MyName, MIN(MyDateTime)
FROM TableA
GROUP BY MyName;
表中所有与最早的[MyDateTime]不同的[MyName]
您需要使用MIN(MyDateTime)
按MyName分组,例如:
SELECT MyName, MIN(MyDateTime)
FROM myTable
GROUP BY MyName
哇-太简单了。谢谢,拉斐尔。