Cálculo de média de valores distintos?

Olá, estou tentando realizar uma consulta que retorne a média de alguns valores porém está me retornando o valor da média de todos e não dependendo do código. Vou exemplificar para ficar mais claro.

Exemplo:

Código       | Valor
1            | 20
1            | 10
2            | 50
1            | 60
2            | 20

Resultado: Está fazendo a média de todos, não diferenciando por código.

Código       | Valor
1            | 32
2            | 32

Resultado esperado:

Código       | Valor
1            | 30
2            | 35

Formas que eu utilizei no meu problema aplicadas no exemplo, mas nenhuma retornou o valor esperado:

Select codigo, AVG(valor) FROM Tabela
Select codigo, AVG(DISTINCT valor) FROM Tabela
Select codigo, AVG(valor) from Tabela GROUP BY codigo
Select codigo, AVG(DISTINCT valor) from Tabela GROUP BY codigo

já tentou

SELECT avg(valor) as media FROM produtos group by codigo;