Select Record With Higher Value I have the following table:

+-----+---------+-------+
| ID  | Account | Score |
+-----+---------+-------+
|   1 |       1 |  500  |
|   2 |       1 |  200  |
|   3 |       2 |  150  |
|   4 |       2 |  200  |
|   5 |       3 |  100  |
|   6 |       3 |  100  |
|   7 |       4 |  300  |
+-----+---------+-------+


What I want my query to do is check the table to see if any accounts match.  If they do, then check the Score and see which is higher.  Output the record with the higher score.  If the scores are the same, output the ID that is first.  If there are no accounts that match, just output the record.

The output would look like this:

+-----+---------+-------+
| ID  | Account | Score |
+-----+---------+-------+
|   1 |       1 |  500  |
|   4 |       2 |  200  |
|   5 |       3 |  100  |
|   7 |       4 |  300  |
+-----+---------+-------+


Any ideas?

Thanks
There is at least two ways to do this. One with a derived table, and one with a CTE. These two queries assume there aren't two accounts with the same score. If that's a possibility, we can use another method to get the last ID, or pick a random one. 

;select 
    t.ID
    ,t2.Account
    ,t2.Score
from
    YourTable t
inner join
    (select Account, Score = max(Score)
    from YourTable
    group by Account) t2 on t2.Account = t.Account and t2.Score = t.Score;


;with cte as(
    select RN = row_number() over (partition by Account order by Score desc, id)
            *,
    from YourTable)

select
    ID,
    Account,
    Score
from cte
where RN = 1;