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

Как да изчислим сумата на колона в SQL таблица за дадена дата и да коригираме пропуснатите стойности с тези от най-близката предишна дата?

Не е красиво, тъй като трябва да свърже четири копия на таблицата ви със себе си, което може да удари всякакъв вид болка в производителността (силно съветвам ви да имате индекси на id и date )... но това ще свърши работа:

SELECT   y.report_date, SUM(x.value)
FROM     mytable AS x
  NATURAL JOIN (
    SELECT   a.id, b.date AS report_date, MAX(c.date) AS date
    FROM     (SELECT DISTINCT id   FROM mytable) a JOIN
             (SELECT DISTINCT date FROM mytable) b JOIN
             mytable AS c ON (c.id = a.id AND c.date <= b.date)
    GROUP BY a.id, b.date
 ) AS y
GROUP BY y.report_date

Вижте го на sqlfiddle .



  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 с Python в Windows

  2. Странна грешка в MySQL само за четене

  3. Грешка в WordPress MySQL SQL заявка в клас WPDB

  4. Вземете и задайте променлива за връзка със сървър на база данни с JDBC

  5. приложението се свързва с базата данни