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

vybrat předchozí datum, mysql

Protože potřebujete pouze jeden sloupec z „předchozího“ řádku, můžete zkusit něco takového:

SELECT
  dte,
  id,
  value,
  (
    SELECT value
    FROM atable
    WHERE id = t.id
      AND dte < t.dte
    ORDER BY dte DESC
    LIMIT 1
  ) AS previous_value
FROM atable t

Pokud potřebujete získat více „předchozích“ atributů, zde je sofistikovanější přístup:

SELECT
  t1.dte,
  t1.id,
  t1.value,
  t2.dte,
  t2.value,
  …
FROM atable t1
  LEFT JOIN atable t2 ON t1.id = t2.id AND t1.dte > t2.dte
  LEFT JOIN atable t3 ON t1.id = t3.id AND t1.dte > t3.dte AND t3.dte > t2.dte
WHERE t3.id IS NULL

Druhý přístup používá trojúhelníkové vlastní spojení a také antispojení k sobě. V podstatě by se to dalo přeložit takto:



  1. Formát času Php

  2. INSERT COMMAND ::ERROR:hodnota sloupce neexistuje

  3. PHP, MySQL, otázka SELECT

  4. Načíst výpis Postgres po vytvoření docker-compose up