Mysql
 sql >> база данни >  >> RDS >> Mysql

Изберете дубликат и запазете най-стария (не въз основа на ID)

Въз основа на вашите примерни данни и резултати, GROUP BY ще ви даде резултатите, които търсите:

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

Допълнение :@Arka предостави актуализирани примерни данни, където value 1 и value 2 колоните имат различни стойности (в оригинала бяха еднакви). Това променя заявката на това:

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

Подзаявката получава списък с най-ранната creationdate за всеки domain , а външната заявка избира само редове, където domain и creationdate съответства на стойностите на подзаявката.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да сумирам множествен брой от множество таблици

  2. MySQL подзаявка в полето ORDER BY. (без вътрешно присъединяване)

  3. Номериране на редове с p:dataTable

  4. Как да получите честотата на дума в ред, използвайки пълен текст на mysql

  5. Грешка при несинхронизирани команди на PHP