It's vital to remember that all of the data in your tables are related. So field values in your CPC column directly tie to the field values in your likes column.
The results of each column do not act independent of each other (at least not the way you have written this query).
So with that concept in mind, this data is sorted correctly. Your Likes column is sorted and then the CPC is sorted based on the static Likes sort. If you had two lines of data with 20 likes and the CPC was 2 and 20, respectively, then you would see those values sorted in order based on your
Order by cpc desc
line. But since you only have one CPC value for your Likes line of 20, that will be the value to appear. Take the same example for the next line, and the one after that and you can see that the values do in fact appear in order.