• Here's a pure TSQL method to compare with Lowell's string-concatenation method.

    ;WITH Rates AS (SELECT worker_id, rate_code, rate_count = COUNT(*) OVER(PARTITION BY worker_id)

    FROM #worker_rate r)

    SELECT

    rate_group = DENSE_RANK() OVER(ORDER BY r1.worker_id),

    r2.worker_id

    FROM Rates r1

    INNER JOIN Rates r2

    ON r2.worker_id >= r1.worker_id

    AND r2.rate_code = r1.rate_code

    AND r2.rate_count = r1.rate_count

    GROUP BY r1.worker_id, r2.worker_id

    HAVING MAX(r1.rate_count) = COUNT(*)

    “Write the query the simplest way. If through testing it becomes clear that the performance is inadequate, consider alternative query forms.” - Gail Shaw

    For fast, accurate and documented assistance in answering your questions, please read this article.
    Understanding and using APPLY, (I) and (II) Paul White
    Hidden RBAR: Triangular Joins / The "Numbers" or "Tally" Table: What it is and how it replaces a loop Jeff Moden