Това е доста болезнено. По принцип един метод използва огромно добавяне на case
изрази, като:
order by
(case when cod_t1 is null then 1 else 0 end)
+ (case when cod_t2 is null then 1 else 0 end)
+ (case when cod_t3 is null then 1 else 0 end)
+ ...
Би било много по-лесно да поправите своя модел на данни, за да съхранявате кодовете като редове а не колони. След това можете да използвате агрегиране:
select id, quarter
from mytable
group by id, quarter
order by count(cod) desc