estes são os dados da tabela do meu banco de dados {eu mantive apenas uma tabela}
Eu preciso buscar no máximo 3 dados de cada start_date,
dá-me alguma ideia para desenvolver consultas,
Respostas:
1 para resposta № 1SELECT a.*
FROM Table1 a
INNER JOIN Table1 b ON a.start_date = b.start_date AND a.event_id <= b.event_id
GROUP BY a.event_id,a.start_date
HAVING COUNT(*) <= 3
ORDER BY a.start_date
1 para resposta № 2
Eu posso sugerir esta consulta -
SELECT * FROM (
SELECT t1.*, COUNT(*) pos FROM table t1
LEFT JOIN table t2
ON t2.start_date = t1.start_date AND t2.event_id <= t1.event_id
GROUP BY
t1.start_date AND t1.event_id
) t
WHERE
pos <= 3;
Seleciona 3 linhas com min event_id
em um start_date
grupo.