Comando Select Duvida

Preciso de uma ajuda, gostaria de saber como posso fazer um select onde mostre a quantidade de acerto por questão, chegou algo parecido com isso, porém, pode ter diversas questões, algumas pode ter somente 10, outras 50 questões ,
na primeira tabela as questões estão dessa forma q_1,q_2,q_3 e assim por diante, a outra está por número de questão 1 2 3

select count(R.q_1),R.q_1 from teste R,teste_gabarito G
where q_1 = 'A' and G.questao = '1'
group by R.q_1,R.arquivo

Algo parecido como isso, porém, não existe a questão q_20 ai ele aparece a mensagem que não existe, tem alguma forma de ele ignorar

select arquivo,
sum(case when q_1 = (select resposta from teste_gabarito where questao = '1') then 1 else 0 end) as q1,
sum(case when q_2 = (select resposta from teste_gabarito where questao = '2') then 1 else 0 end) as q2,
sum(case when q_20 = (select resposta from teste_gabarito where questao = '20') then 1 else 0 end) as q20
from teste
group by arquivo

As questões são colunas da tabela? É isso?

Exato, são colunas:

Gostaria que ficasse tipo assim

Questão ; Quantidade_acerto
1 ; 20
2 ; 30
3 ; 10
4 ; 5

Select questao,**count(questao)**   --Aqui que tem que mudar
from teste_gabarito
group by questao
order by questao

Cara, para fazer isso, acho que vai ficar bom usando crosstab: https://medium.com/@mkober7/postgresql-funcao-crosstab-8da173efa0d2

Consegui criar uma tabela identica a outra

select projeto, 
(select resposta from teste_gabarito where questao = '1') as q_1,
(select resposta from teste_gabarito where questao = '2') as q_2,
(select resposta from teste_gabarito where questao = '3') as q_3,
(select resposta from teste_gabarito where questao = '4') as q_4
from teste_gabarito
group by projeto

Como faz para tranformar coluna em linha?