Thanks Mark,
I modifiied it slightly, since I really just want to look at the groups that contain 4.99 payments specifically. Since I could not isolate these with the query, it helps to have them at the top of the list.
SELECT transactionID, user_name, payment_amount, COUNT() AS num_transactions
FROM Payments
GROUP BY user_name
HAVING COUNT() > 1
ORDER BY payment_amount
My only concern is whether or not this method finds the 4.99 in every group, or if the ORDER BY simply uses the first payment_amount it finds for that particular user_name. If the later is true, then the 4.99 rows that appear at the beginning of the query result, do not represent all of the records that may have multiple payments including one for 4.99. It would only show the records where 4.99 was the first payment it found for a particular user that had multiple payments.
I hope that doesn't sound too tortured of an explanation, but if you understand what I mean, you will see the dilemna. It all comes down to the way MySQL behaves when creating ordered groups, right?