Podría ser algo así:
# ULTIMOS 300 SORTEOS
select Numero, sum(Contador) Veces_que_salio_en_ultimos_300_sorteos from (
select fecha, n1 AS Numero, 1 AS Contador from sorteos
UNION
select fecha, n2 AS Numero, 1 AS Contador from sorteos
UNION
select fecha, n3 AS Numero, 1 AS Contador from sorteos
UNION
select fecha, n4 AS Numero, 1 AS Contador from sorteos
UNION
select fecha, n5 AS Numero, 1 AS Contador from sorteos) N
WHERE fecha <= CURDATE() AND fecha >= (select min(fecha) from (select fecha from sorteos order by fecha desc limit 300) ultimos)
GROUP BY Numero ORDER BY Veces_que_salio_en_ultimos_300_sorteos DESC;
# ULTIMOS 20 SORTEOS
select Numero, sum(Contador) Veces_que_salio_en_ultimos_20_sorteos from (
select fecha, n1 AS Numero, 1 AS Contador from sorteos
UNION
select fecha, n2 AS Numero, 1 AS Contador from sorteos
UNION
select fecha, n3 AS Numero, 1 AS Contador from sorteos
UNION
select fecha, n4 AS Numero, 1 AS Contador from sorteos
UNION
select fecha, n5 AS Numero, 1 AS Contador from sorteos) N
WHERE fecha <= CURDATE() AND fecha >= (select min(fecha) from (select fecha from sorteos order by fecha desc limit 20) ultimos)
GROUP BY Numero ORDER BY Veces_que_salio_en_ultimos_20_sorteos DESC;
# ULTIMOS 10 SORTEOS
select Numero, sum(Contador) Veces_que_salio_en_ultimos_10_sorteos from (
select fecha, n1 AS Numero, 1 AS Contador from sorteos
UNION
select fecha, n2 AS Numero, 1 AS Contador from sorteos
UNION
select fecha, n3 AS Numero, 1 AS Contador from sorteos
UNION
select fecha, n4 AS Numero, 1 AS Contador from sorteos
UNION
select fecha, n5 AS Numero, 1 AS Contador from sorteos) N
WHERE fecha <= CURDATE() AND fecha >= (select min(fecha) from (select fecha from sorteos order by fecha desc limit 10) ultimos)
GROUP BY Numero ORDER BY Veces_que_salio_en_ultimos_10_sorteos DESC;