我目前使用這個最早條目的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? –