Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wybierz duplikat i zachowaj najstarszy (nie na podstawie identyfikatora)

Na podstawie przykładowych danych i wyników GROUP BY da Ci wyniki, których szukasz:

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

Uzupełnienie :@Arka dostarczyła zaktualizowane przykładowe dane, w których value 1 i value 2 kolumny mają różne wartości (w oryginale były takie same). To zmienia zapytanie na to:

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

Podzapytanie pobiera listę najwcześniejszych creationdate dla każdej domain , a zapytanie zewnętrzne wybiera tylko wiersze, w których domain i creationdate dopasuj wartości podzapytania.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Porównanie czasów przełączania awaryjnego serwera proxy bazy danych — ProxySQL, MaxScale i HAProxy

  2. Jaki jest najlepszy sposób przechowywania kodu HTML w mysql?

  3. Rozmiar VARCHAR MySQL?

  4. Unikalny BLOB MySQL / MariaDB o stałej długości

  5. Python :Co jest nie tak z moim kodem wieloprocesowym wstawianym do MySQL?