bysort ProviderId Hospital : gen count = _n == 1 
by ProviderId : replace count = sum(count) 
by ProviderId : replace count = count[_N] 
OR 
bysort ProviderId (Hospital) : gen count = sum(Hospital != Hospital[_n-1]) 
by ProviderId : replace count = count[_N] 
OR 
egen tag = tag(ProviderId Hospital)
egen count = total(tag), by(ProviderId) 
OR 
The beast is canned as -egen, nvals()- in -egenmore- from SSC. 
egen count = nvals(Hospital), by(ProviderId) 
AND see
FAQ     . . . . . . . . . . . . . . . . . . .  Number of distinct observations
        . . . . . . . . . . . . . . . . . . . . . . . N. J. Cox and G. Longton
        4/02    How do I compute the number of distinct observations?
                http://www.stata.com/support/faqs/data/distinct.html
Nick 
[email protected] 
Jesse Moore MD 
 
> This is perhaps a mundane question (compared to some posts), but
> important to me nonetheless:
> My data looks like this:
> ProviderID    Hospital    
> A                    1
> A                    1
> A                    1
> A                    1
> B                    1
> B                    1
> B                    2
> 
> I would like to create a variable with the number of 
> hospitals that each
> provider has worked at.  For provider A it would be 1, for 
> provider B it
> would be 2.
*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/