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

Сравнение на MySQL дата и час с предишния ред

Това може да се справи с последователно сканиране на таблицата и използване на MySQL променливи. Можете да тествате в (актуализирани ) 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:IF таблица съществува, съкратете и вмъкнете ELSE създайте

  2. Показване на множество стойности от един ред, когато се използва падащото поле от базата данни на mysql

  3. Защо не мога да вмъкна 10 цифри, когато колоната ми е INT(10)

  4. Ограничения за съхранение на MySQL потребителски дефинирани променливи

  5. Автоматизиране на внедряване на база данни на MySQL