Функция форматирования возвращает строку, следовательно, порядок не соответствует ожидаемому. Вы можете использовать функцию round, чтобы получить тот же эффект, не превращая его в строку.
Select VendorName, ROUND(SUM(Order_Quantity*Net_price),2) as Total_Purchase
from purchases
group by VendorName
order by Total_Purchase desc;
Редактировать: Если вам действительно нужно форматирование, вы можете использовать что-то вроде этого:
select VendorName, format(Total_Purchase_Int, 2) as Total_Purchase
from (
Select VendorName, ROUND(SUM(Order_Quantity*Net_price),2) as
Total_Purchase_Int
from purchases
group by VendorName
order by Total_Purchase desc
) as temp_purchase_table;