sql >> Database >  >> RDS >> Mysql

MySQL datetime vergelijking met vorige rij

Dit kan worden afgehandeld door de tabel sequentieel te scannen en MySQL-variabelen te gebruiken. Je kunt testen in (bijgewerkt ) SQL-fiddle :

SELECT date2
     , dd 
     , DATE_FORMAT(dd, '%b %e, %Y') AS final_date
     , date1_duplicate
     , date1_was_null
FROM
( SELECT date2
       , COALESCE( (date1 = @d OR date1 = @prev), FALSE)
           AS date1_duplicate
       , (date1 IS NULL)               AS date1_was_null
       , @d := CASE WHEN (date1 = @d OR date1 = @prev) 
                 THEN date2 
                 ELSE COALESCE(date1, date2) 
               END AS dd
       , @prev := date1 AS pre
  FROM tableX AS t
    CROSS JOIN
      ( SELECT @d := DATE('1000-01-01')
             , @prev := @d 
      ) AS dummy
  ORDER BY date2 ASC 
) AS tmp
ORDER BY date2 DESC
;



  1. MySQL vind topresultaten voor elke groep

  2. Importeer CSV-bestand rechtstreeks in MySQL

  3. mysql voegt queryresultaat met meerdere rijen in tabel in

  4. Langzame query-log inschakelen in PostgreSQL