I need to select the top Provider for each Patient, based on the number of claims attributed to each Provider, or in other words, select the provider that the patient goes to most often. For instance, I have the following data:
| Patient | Provider | Claim Number |
| 001 | 001 | 0001 |
| 001 | 002 | 0002 |
| 001 | 002 | 0003 |
| 002 | 001 | 0004 |
| 002 | 003 | 0005 |
| 002 | 003 | 0006 |
The desired results would show:
Patient | Top Provider
001 | 001
002 | 003
This is my current attempt:
SELECT pat.patient,clms.provider AS [Top Provider]
FROM PatientList pat
LEFT OUTER JOIN Claims clms
ON clms.Provider =(
SELECT Provider FROM
(
SELECT TOP 1 Provider, COUNT(DISTINCT [Claim Number])
FROM Claims
WHERE ssn = pat.ssn
GROUP BY Provider
ORDER BY COUNT(DISTINCT [Claim Number]) desc
)
)