比方说,我有以下示例表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