sql >> Databáze >  >> RDS >> Mysql

Vyberte duplikát a ponechte nejstarší (nezaloženo na ID)

Na základě vašich ukázkových dat a výsledků GROUP BY vám poskytne výsledky, po kterých toužíte:

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

Dodatek :@Arka poskytla aktualizovaná ukázková data, kde je value 1 a value 2 sloupce mají různé hodnoty (v originále byly stejné). Tím se dotaz změní na toto:

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

Dílčí dotaz získá seznam nejstaršího creationdate pro každou domain a vnější dotaz vybere pouze řádky, kde je domain a creationdate odpovídat hodnotám poddotazu.




  1. Správa Liquibase pomocí vývojového modelu GitFlow

  2. Jaká by byla nejlepší metoda pro migraci databáze Oracle do MS Access pomocí Java?

  3. zamezení duplicitního vkládání řádků do php/mysql

  4. Jak vrátit sadu výsledků z uložené procedury v Oracle?