我目前使用这个最早条目的IDS:相关子查询来选择
IF OBJECT_ID('tempdb..#Temp') IS NOT NULL DROP TABLE #Temp
CREATE TABLE #Temp
(
SomeId INT,
UtcDateTime DATETIME2
)
INSERT INTO #Temp
SELECT 1, DATETIME2FROMPARTS(2015,1,1,1,1,1,0,0)
UNION
SELECT 1, DATETIME2FROMPARTS(2015,1,1,2,1,1,0,0)
UNION
SELECT 2, DATETIME2FROMPARTS(2015,1,1,3,1,1,0,0)
UNION
SELECT 2, DATETIME2FROMPARTS(2015,1,12,4,1,1,0,0)
UNION
SELECT 2, DATETIME2FROMPARTS(2015,1,12,5,1,1,0,0)
UNION
SELECT 3, DATETIME2FROMPARTS(2015,1,12,5,1,1,0,0)
SELECT * FROM #Temp ORDER BY UtcDateTime ASC
SELECT
*
FROM #Temp AS O1
WHERE UtcDateTime =
(
SELECT MIN(UtcDateTime) FROM #Temp AS O2 WHERE O1.SomeId = O2.SomeId
)
AND SomeId =
(
SELECT MAX(SomeId) FROM #Temp AS O2 WHERE O1.SomeId = O2.SomeId AND O1.UtcDateTime = O2.UtcDateTime
)
的意图是选择用于基于UtcDateTime鲜明SomeId每个条目的第一个匹配。换句话说,我在这些行之后:
SomeId UtcDateTime
1 2015-01-01 01:01:01.0000000
2 2015-01-01 03:01:01.0000000
3 2015-01-12 05:01:01.0000000
以上相关的子查询方法是否正确?
为什么不选择SomeId,MIN(UtcDateTime )FROM #temp GROUP BY SomeId? –