gpt4 book ai didi

mysql - 按日期选择最高/最大总和组

转载 作者:行者123 更新时间:2023-12-01 00:34:27 24 4
gpt4 key购买 nike

我有一个表,我想对列求和并得到具有最高/最大总和的结果

这是我的 table

sales
+-------------+----------+--------------------------------+
| package_id | amount | datesales |
+-------------+----------+--------------------------------+
| 123 | 100 | 2019-12-01 09:18:19.000000 |
| 123 | 100 | 2019-12-01 09:18:19.000000 |
| 123 | 100 | 2019-12-02 09:18:19.000000 |
| 123 | 200 | 2019-12-02 09:18:19.000000 |
+-------------+----------+--------------------------------+

datesales column is in timestamp

这是我的问题

SELECT max(AMOUNTSUM) AS amount42
FROM
(
SELECT SUM(AMOUNT) AS AMOUNTSUM
FROM sales
where date(datesales) <= curdate() and
date(datesales) >= curdate() - interval 6 day
and package_id = 123
group by datesales
)

我有 4 个条目,日期是今天和昨天,所以我期望根据时间戳中的 datesales 列获得最高/最大的总和

日期销售(今天)的总和为 200,而日期销售(昨天)的总和为 300,我想得到 300 结果,但我不知道我的查询有什么问题

预期结果

+-----------+-------+
| yesterday | 300 |
+-----------+-------+

我得到的结果

+-----------+-------+
| yesterday | 200 |
+-----------+-------+

最佳答案

您需要按日期而不是日期/时间 进行汇总。您还可以消除子查询:

select sum(AMOUNT) AS AMOUNTSUM
from sales
where datesales < curdate() + interval 1 day and
datesales >= curdate() - interval 6 day and
package_id = 123
group by date(datesales)
order by amountsum desc
limit 1;

请注意,我更改了日期比较,以便它们对索引友好。

关于mysql - 按日期选择最高/最大总和组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59163822/

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