如何将mysql中的每周数据拆分为每日数

时间:2019-03-23 23:56:16

标签: mysql sql

我在数据库中每周都有可用的值。 例如,两列:2019-03-10、7000

第一个是一个星期,另一个是一个数字

使用SELECT查询,我要实现的是将该数字除以7,并显示为本周的7天,因此结果将是

2019-03-10   -   1000
2019-03-11   -   1000
2019-03-12   -   1000
2019-03-13   -   1000
2019-03-14   -   1000
2019-03-15   -   1000
2019-03-16   -   1000

我无法建立任何查询,我什至不确定这是否可行,但会感谢任何建议

1 个答案:

答案 0 :(得分:2)

您可以通过JOIN将每周数据表添加到生成的表中来获得此结果,该表包含值0到6(相对于星期开始的天数)。您可以通过添加一周开始的天数来创建每天的日期,并通过将周数除以7来创建数量。例如:

CREATE TABLE weekly (week_start DATE,
                     quantity INT);

INSERT INTO weekly VALUES
('2019-03-10', 7000),
('2019-03-03', 4444);

SELECT w.week_start + INTERVAL d.day DAY AS `date`,
       w.quantity / 7 AS quantity
FROM weekly w
CROSS JOIN (SELECT 0 AS day
            UNION SELECT 1 UNION SELECT 2 UNION SELECT 3
            UNION SELECT 4 UNION SELECT 5 UNION SELECT 6) d
ORDER BY `date`

输出:

date        quantity
2019-03-03  634.8571
2019-03-04  634.8571
2019-03-05  634.8571
2019-03-06  634.8571
2019-03-07  634.8571
2019-03-08  634.8571
2019-03-09  634.8571
2019-03-10  1000
2019-03-11  1000
2019-03-12  1000
2019-03-13  1000
2019-03-14  1000
2019-03-15  1000
2019-03-16  1000

Demo on dbfiddle