gpt4 book ai didi

php - 选择过去 30 天的 SUM "separately"

转载 作者:行者123 更新时间:2023-11-29 05:47:17 25 4
gpt4 key购买 nike

我有一个MySQL表,如下所示

------------------------------------------------
| id | user_id | day | value |
| INT(11) | INT(11) | INT(8) | DECIMAL(5,2) |
------------------------------------------------

日期是这样的 (Ymd) 数字:20191012

我想获取今天和过去 29 天的 SUM(value) separately(30 天,基于天列)

我想到了这样一个循环

for($i=0;$i<=30;$i++)
{
$query = "SELECT SUM(value) FROM table WHERE day=".date('Ymd', strtotime("-{$i} days"));
}

但我怎样才能更有效地实现这一目标呢?感谢您的帮助。

最佳答案

你可以使用 Group By使用单个 MySQL 查询获取它

SELECT day, SUM(value) FROM table GROUP BY day WHERE day >= ".date('Ymd', strtotime("-29 days"));

它应该可以工作,因为你的 day 字段是一个数字并且每天都会增加,所以你可以将它与 gte 进行比较

预期输出将是

---------------------------
| day | SUM(value) |
| INT(8) | |
---------------------------
| 20191012 | 15.25 |
---------------------------
| 20191011 | 29.13 |
---------------------------
| ... | ... |
---------------------------

J4I:如果您的数据集中有几天没有值,则输出中也缺少缺失的“day-row”,因此结果行可能少于 30 个。

关于php - 选择过去 30 天的 SUM "separately",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58678084/

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