mysql每周分组,每周添加总计
我正在尝试创建一个查询,该查询将返回基于每周的数字总数,以便创建一个上升趋势折线图。在我的表中,有许多记录记录了完成日期(已完成)。我希望能够创建一个查询,每周生成一个滚动总数。因此,如果第1周完成了10个,第2周完成了15个,第3周完成了5个,那么期望的结果将是:mysql每周分组,每周添加总计,mysql,Mysql,我正在尝试创建一个查询,该查询将返回基于每周的数字总数,以便创建一个上升趋势折线图。在我的表中,有许多记录记录了完成日期(已完成)。我希望能够创建一个查询,每周生成一个滚动总数。因此,如果第1周完成了10个,第2周完成了15个,第3周完成了5个,那么期望的结果将是: SET @runtot:=0; SELECT DATE_FORMAT(completed,'%d/%m/%Y') AS niceDate, wk, (@runtot := @runtot + c) AS rt FR
SET @runtot:=0;
SELECT
DATE_FORMAT(completed,'%d/%m/%Y') AS niceDate,
wk,
(@runtot := @runtot + c) AS rt
FROM
(SELECT
completed,
yearweek(completed)as wk,
COUNT(*) AS c
FROM `w10_upgrades`
where status = 'Successful' and type = 'Normal'
and yearweek(completed) is not null
GROUP BY wk
ORDER BY wk) x
第一周总计:10
第2周总计:25
第3周总计:30
SET @runtot:=0;
SELECT
DATE_FORMAT(completed,'%d/%m/%Y') AS niceDate,
wk,
(@runtot := @runtot + c) AS rt
FROM
(SELECT
completed,
yearweek(completed)as wk,
COUNT(*) AS c
FROM `w10_upgrades`
where status = 'Successful' and type = 'Normal'
and yearweek(completed) is not null
GROUP BY wk
ORDER BY wk) x
样本数据:
id status sched
12 Successful 2017-04-04 00:00:00.000
15 Successful 2017-06-20 19:30:00.000
18 Successful 2017-10-17 18:00:00.000
26 Successful 2017-04-05 00:00:00.000
29 Successful 2017-06-16 00:00:00.000
30 Successful 2017-04-06 00:00:00.000
31 Successful 2017-04-07 00:00:00.000
32 Successful 2017-04-06 00:00:00.000
34 Successful 2017-10-18 18:00:00.000
35 Successful 2017-06-13 00:00:00.000
SET @runtot:=0;
SELECT
DATE_FORMAT(completed,'%d/%m/%Y') AS niceDate,
wk,
(@runtot := @runtot + c) AS rt
FROM
(SELECT
completed,
yearweek(completed)as wk,
COUNT(*) AS c
FROM `w10_upgrades`
where status = 'Successful' and type = 'Normal'
and yearweek(completed) is not null
GROUP BY wk
ORDER BY wk) x
这是我用来在没有任何汇总的情况下按周成功生成数据的查询。我试着加上“WITH ROLLUP”,但最后只给出了总计,而不是每周
select DATE_FORMAT(completed,'%d/%m/%Y') AS nd , wk, count(*)as totals
from
(
select id, completed, yearweek(completed)as wk from w10_upgrades
where status = 'Successful' and type = 'Normal'
and yearweek(completed) is not null
) x
GROUP BY wk
ORDER BY wk;
SET @runtot:=0;
SELECT
DATE_FORMAT(completed,'%d/%m/%Y') AS niceDate,
wk,
(@runtot := @runtot + c) AS rt
FROM
(SELECT
completed,
yearweek(completed)as wk,
COUNT(*) AS c
FROM `w10_upgrades`
where status = 'Successful' and type = 'Normal'
and yearweek(completed) is not null
GROUP BY wk
ORDER BY wk) x
期望输出:
wk totals
201714 10
201715 25 (output would = week 201714 + 201715)
201716 55 (output would = week 201714 + 201715 + 201716)
ect...
SET @runtot:=0;
SELECT
DATE_FORMAT(completed,'%d/%m/%Y') AS niceDate,
wk,
(@runtot := @runtot + c) AS rt
FROM
(SELECT
completed,
yearweek(completed)as wk,
COUNT(*) AS c
FROM `w10_upgrades`
where status = 'Successful' and type = 'Normal'
and yearweek(completed) is not null
GROUP BY wk
ORDER BY wk) x
任何方向都值得赞赏。我找不到与此相关的任何内容。最终结果
SET @runtot:=0;
SELECT
DATE_FORMAT(completed,'%d/%m/%Y') AS niceDate,
wk,
(@runtot := @runtot + c) AS rt
FROM
(SELECT
completed,
yearweek(completed)as wk,
COUNT(*) AS c
FROM `w10_upgrades`
where status = 'Successful' and type = 'Normal'
and yearweek(completed) is not null
GROUP BY wk
ORDER BY wk) x
请显示您的模式、示例源数据和预期输出。谢谢。像这样的东西可能会对你有帮助:看起来很有希望。谢谢