我在数据库中每周都有可用的值。 例如,两列: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
我无法建立任何查询,我什至不确定这是否可行,但会感谢任何建议
答案 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