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

SQL/MySQL:разделете стойност на количество на няколко реда по дата

Ако решите да надстроите до MySQL 8.0, ето рекурсивен CTE, който ще генерира списък с всички дни между planning_start_date и planning_end_date заедно с необходимото дневно количество:

WITH RECURSIVE cte AS (
    SELECT planning_start_date AS date, 
           planning_end_date, 
           quantity / (DATEDIFF(planning_end_date, planning_start_date) + 1) AS daily_qty
    FROM test
    UNION ALL
    SELECT date + INTERVAL 1 DAY, planning_end_date, daily_qty
    FROM cte
    WHERE date < planning_end_date
)
SELECT `date`, daily_qty
FROM cte
ORDER BY `date`

Демо на dbfiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysqldump поддържа ли лента за напредък?

  2. Извличане на данни от sql база данни и показване в таблици - Показване на определени данни според поставените отметки в квадратчетата

  3. Вземете реда на зависимостта на таблицата в jdbc

  4. Писане в MySQL база данни с панди с помощта на SQLAlchemy, to_sql

  5. Прехвърляне на int към varchar