SELECT * FROM ( SELECT p.name AS provider_name, i.name AS item_name, h.profit, h.roi, h.date, RANK() OVER (ORDER BY h.profit DESC) as rank_profit, RANK() OVER (ORDER BY h.roi DESC) as rank_roi, RANK() OVER (ORDER BY h.date DESC) as rank_rotation FROM item_provider_behaivor_history h JOIN provider p ON h.provider_id = p.id JOIN item i ON h.item_id = i.id -- Filtro dinámico: desde hoy hacia atrás 90 días WHERE h.date >= DATE_SUB(CURDATE(), INTERVAL 90 DAY) ) as ranked_data WHERE rank_profit <= 10 OR rank_roi <= 10 OR rank_rotation <= 10 ORDER BY rank_profit ASC LIMIT 10;