Imaginamos que é necessário coletar informações agrupadas com um limite de quantidade por agrupamento, todas informações por grupo em uma única query.
Recomendo fazer a busca e gerar isso na programação ou procedure, mas o método abaixo vai fazer o que precisa, mas deixará a busca lenta dependendo do tamanho da tabela.
Exemplo:
Esta query somente vai fazer com que você concatene e agrupe da forma que quer um campo, mas o resultado seria para todos os registros:
select produto , GROUP_CONCAT(data_cadastro ORDER BY data_cadastro DESC) dategroup
from teste
group by produto;
Agora desta forma com o SUBSTRING_INDEX, você pode definir a quantidade de informações por registro que vai querer, imaginando que você quer somente 2(dois):
select produto , SUBSTRING_INDEX(GROUP_CONCAT(data_cadastro ORDER BY data_cadastro DESC), ‘,’, 2) dategroup
from teste
group by produto;
References:
– https://stackoverflow.com/questions/2129693/using-limit-within-group-by-to-get-n-results-per-group
– https://stackoverflow.com/questions/43254054/php-mysql-group-concat-limit/43254096