sql >> Database teknologi >  >> RDS >> Mysql

Vælg dublet og behold den ældste (ikke baseret på ID)

Baseret på dine eksempeldata og resultater, en GROUP BY vil give dig de resultater, du leder efter:

SELECT
  domain,
  MIN(creationdate) AS creationdate,
  value1,
  value2
FROM mytable
GROUP BY domain, value1, value2

Tillæg :@Arka leverede opdaterede eksempeldata, hvor value 1 og value 2 kolonner har forskellige værdier (i originalen var de ens). Det ændrer forespørgslen til dette:

SELECT domain, creationdate, value1, value2
FROM mytable
WHERE (domain, creationdate) IN (
  SELECT domain, MIN(creationdate)
  FROM mytable
  GROUP BY domain)

Underforespørgslen får en liste over den tidligste creationdate for hvert domain , og den ydre forespørgsel vælger kun rækker, hvor domain og creationdate match underforespørgselsværdierne.




  1. Ukendt kolonne i hvor-klausul

  2. At have Timeout for at få en forbindelse efter opgradering af Knex

  3. Sådan returnerer du rækker, der mangler i tabellen - Medarbejderfraværsrapport

  4. Sådan opsætter du OTA i R12 og 11i