Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Selecione duplicado e mantenha o mais antigo (não com base no ID)


Com base nos dados e resultados de sua amostra, um GROUP BY fornecerá os resultados que você procura:
SELECT
  domain,
  MIN(creationdate) AS creationdate,
  value1,
  value2
FROM mytable
GROUP BY domain, value1, value2

Adendo :@Arka forneceu dados de amostra atualizados em que o value 1 e value 2 colunas têm valores diferentes (no original eram os mesmos). Isso altera a consulta para isso:
SELECT domain, creationdate, value1, value2
FROM mytable
WHERE (domain, creationdate) IN (
  SELECT domain, MIN(creationdate)
  FROM mytable
  GROUP BY domain)

A subconsulta obtém uma lista das primeiras creationdate para cada domain , e a consulta externa seleciona apenas as linhas em que o domain e creationdate corresponder aos valores da subconsulta.