¿Esta tabla tiene una entrada por cada descarga que se hace?
Más pareciera la tabla que contiene la descripción de los archivos a descargar. Si es la que guarda un registro por cada descarga hecha parece tener una enorme redundancia de datos...
Probemos afinar:
Código sql:
Ver originalSELECT id, name, descargas downloads
FROM
(
SELECT id, name, COUNT(downloads) descargas
FROM dl_files
WHERE FROM_UNIXTIME(LAST,'%Y-%m-%d') BETWEEN DATE_SUB(NOW(),INTERVAL 30 DAY) AND DATE(NOW())
GROUP BY id) t1
ORDER BY descargas DESC
LIMIT 5;
Eso debería contar todas aquellas entradas donde `downloads`no tuviese un valor NULL. En caso de que pudiese tener un valor cero (0) y no un NULL, entonces debería ser:
Código sql:
Ver originalSELECT id, name, descargas downloads
FROM
(
SELECT id, name, SUM(IF(downloads!=0, 1, 0)) descargas
FROM dl_files
WHERE FROM_UNIXTIME(LAST,'%Y-%m-%d') BETWEEN DATE_SUB(NOW(),INTERVAL 30 DAY) AND DATE(NOW())
GROUP BY name) t1
ORDER BY descargas DESC
LIMIT 5;