I am trying to group multiple rows and order it by the total values but im struggling to figure out whats going wrong.
Name Total
======= =======
ASOS
First order by the max total for each name, descending, the order by total descending:
select *
from tablename t1
order by (select max(total) from tablename t2
where t1.name = t2.name) desc,
total desc
Try this
select * from tablename order by total desc
Selecting two things to ORDER BY doesn't work too well if you're not familiar with ORDER BY syntax. from your description, it looks like you just want the highest total at the top. This query will order the results by total descending (highest first)
if you want the names to be ascending (lowest first) at the same time, try
select * from tablename order by name asc, total desc
Try this:
SELECT *
FROM tablename
ORDER BY
Name,
char_length(CAST(Total As varchar(max))) DESC,
Total DESC