gpt4 book ai didi

MySQL最小记录加起来为10000条

转载 作者:行者123 更新时间:2023-11-29 07:09:40 25 4
gpt4 key购买 nike

我有一个包含两列的 MySQL 表:takenOn(datetime) 和 count(int)。 count 包含我已采取的步数。

我正在尝试编写一个查询,告诉我何时达到每天 10,000 步的目标。

到目前为止,我有以下查询:

SET @runningTotal=0;
SELECT
`Date`,
DATE_FORMAT(MIN(takenOn), '%l:%i %p') AS `Time`,
TotalCount
FROM
(SELECT
DATE(s.takenOn) AS `Date`,
s.takenOn,
s.`count`,
@runningTotal := @runningTotal + s.`count` AS TotalCount
FROM
(select * from step where DATE(takenOn) = '2016-10-29') s) temp
WHERE TotalCount >= 10000;

这可行,但当然只给我 10 月 29 日的 MIN(takenOn)。如何扩展此查询以给出表中所有可能日期的 MIN(takenOn)

谢谢!

最佳答案

我假设您关心的步骤都在一天之内。你走在正确的轨道上。这是多天的代码:

SELECT `Date`, DATE_FORMAT(MIN(takenOn), '%l:%i %p') AS `Time`,
MIN(TotalCount)
FROM (SELECT DATE(s.takenOn) AS `Date`,
s.takenOn,
s.`count`,
(@runningTotal := if(@d = DATE(s.takenOn), @runningTotal + s.`count`,
if(@d := DATE(s.takeOn), s.`count`, s.`count`)
)
) AS TotalCount
FROM step s CROSS JOIN
(SELECT @runningTotal := 0, @d = '') params
ORDER BY takenOn
) s
WHERE TotalCount >= 10000
GROUP BY `Date`;

请注意,所有变量赋值都在一个表达式中。这很重要,因为 MySQL 不保证 SELECT 中表达式的求值顺序。因此,如果您将赋值拆分到多个表达式中,则无法保证代码能够正常工作。

关于MySQL最小记录加起来为10000条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40323386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com