比方說,我有以下示例表SQL Server查詢 - 找到第一個序列
GroupID ItemID Created
-----------------------------------------------
A ABC 5/1/2009 13:02
A XZY 5/1/2009 13:01
A LMO 5/1/2009 13:03
A DEF 5/1/2009 13:00
A PQR 5/1/2009 13:04
B WXY 5/1/2009 13:02
B HIJ 5/1/2009 13:03
B STU 5/1/2009 13:01
我怎樣才能返回第一個項目ID基於創建列各組?我需要一個查詢返回以下:
GroupID ItemID Created
-----------------------------------------------
A DEF 5/1/2009 13:00
B STU 5/1/2009 13:01
我正在使用的數據集可以有幾千元到幾百萬行,所以我想如果可能的話,以避免任何昂貴的子查詢。我在想也許我可以用內連接來完成,但是我最初的嘗試導致了我自己的困惑。
編輯:到目前爲止,我有以下幾點:
select t2.ItemID, count(*) from
(select GroupID, min(created) as created from table) t1
inner join table t2 on t1.created = t2.created
group by t2.itemid
任何原因,這是行不通的?它比我想要的要慢,但它更新了彙總表,所以它不是一個大問題。
我剛剛通過類似的原始問題更新,但似乎我忘記加入組ID。謝謝! – Chris 2009-10-07 13:36:27