SQL Server:按列分组并获取第一个组

时间:2013-09-25 10:23:59

标签: sql-server

我有一张发送预定短信的表格。一些文本有多个接收器,具有相同文本的记录具有相同的 GroupID 每次我应该选择最多100个接收器但是所有接收器必须具有相同的GroupID。例如,如果有500个具有相同GroupID的记录,我应该选择该组的100个记录,但如果有10个记录具有相同的GroupID,我应该只选择这10个记录。

好吧,我可以简单地选择前100来定义最大问题是我不知道如何避免选择其他GroupID的记录。

我想出了这个解决方案你觉得怎么样?

select top 100 * from ScheduledSms
where GroupID = (select top 1 GroupID from ScheduledSms order by DateAdded)

2 个答案:

答案 0 :(得分:0)

SELECT TOP 100 receiver 
WHERE  groupid = '...' 

答案 1 :(得分:0)

我使用了自己的解决方案并且工作正常:

select top 100 * from ScheduledSms
where GroupID = (select top 1 GroupID from ScheduledSms order by DateAdded)