Нормальный SQL не дает стрелять себе в ногу и выше.
Поэтому при группировке все отображаемые поля должны фигурировать либо в условии группировки либо в агрегации.
Ну и при наличии client_id - группировать надо исключительно по нему, а производные от id фамилия, имя, отчество - тут придется слегка "обмануть" защиту от дурака:
select
Фамилия = min(clients.surname),
Имя = max(clients.Name),
[Ободран на сумму] = sum(.....)
from clients
left join orders on clients.id = orders.ClientsId
group by clients.id
order by min(clients.surname)
но более человеческий вариант с точки зрения логики - вначале группировать продажи по client_id и уже к получившемуся джойнить clients
впрочем интеллекта SQL вполне хватит спроектировать оптимальный план в любом случае