SELECT * FROM ( SELECT *, ROW_NUMBER() OVER (/**orderby**/) AS RowNumber FROM ( SELECT d.*, COUNT(r.DinnerID) AS RsvpCount FROM Dinners d LEFT OUTER JOIN RSVP r ON d.DinnerID = r.DinnerID /**where**/ GROUP BY d.DinnerID, d.Title, d.EventDate, d.Description, d.HostedById, d.HostedBy, d.ContactPhone, d.Address, d.Country, d.Latitude, d.Longitude ) as X ) as Y WHERE RowNumber BETWEEN @start AND @finish"