...and the jaws spring shut ...
Let's assume that there are a number of rows all with the same number of (minimum) calls. These rows together form a set.
When you say you want "The first one" from this set, the word "first" is an ordinal number. This implies that the set is ordered in some way. If there is no ordering, then what do you mean by "first"? If there is no ordering, then any row at all could be first, last, or anything in between. Actually, if there is no ordering, then such concepts as "first", "last", or "twenty-seventh" have no meaning at all.
Indeed, in SQL, the rows which form the resultset from a query, absent any ORDER BY clause, are an unordered set, and the query processor is free to return that resultset in any order it wants, or rather, in no order at all. You must not make any assumptions about the order of a resultset unless you have specifically indicated you want an ordering via the ORDER BY clause.
When you say "first", you are (probably) referring to the row which "comes before" all the other rows. In order to determine that, there must be something which determines the "come-before-ing" property of a row. Typically, this sort of thing would be a date, such as a "LastActivityDate", or maybe "LastCallDate".
Now, if you have such a column in your rows, you could order the resultset from the minimum query we've discussed by that column, then use the TOP 1 qualifier to extract the "first" row as ordered by that date column.
Thus, you'll need to have some value which can be used to order the resultset. Once you ORDER BY that column value, then such concepts as "first" and "last" have a meaning.
Jeff Mason
Custom Apps, Inc.
www.custom-apps.com