gpt4 book ai didi

mysql - 一周中最好的一天

转载 作者:可可西里 更新时间:2023-11-01 07:34:46 25 4
gpt4 key购买 nike

我有一个三列的表格

order;
orderID | ordertotal | datetime

1 | 100.00 | 2015-03-01 17:48:14
2 | 150.00 | 2015-05-10 02:33:20
3 | 5982.23 | 2015-06-11 17:11:30
...

我正在尝试查找一周中几天的 SUMordertotals 的记录。

换句话说,我想看到最好的星期一(订单总和)、最好的星期二和其他。

最后,我将在一周的 7 天中得到如下所示的结果。

 DailyTotal    | DayOfTheWeek | ActualDate

7500 | Monday | 2015-03-01
8000 | Tuesday | 2015-05-10
5000 | Wednesday | 2015-06-11
...

我尝试了这个查询,除了 ActualDate 之外它都有效;

SELECT
MAX(o2.dailytotal) AS DailyTotal,
DATE_FORMAT(o2.datetime2, '%W') AS DayOfTheWeek,
o2.datetime2 AS ActualDate
FROM
(
SELECT
SUM(s1.ordertotal) AS dailytotal,
DATE(s1.datetime) AS datetime2
FROM
order AS o1
GROUP BY
DATE(o1.datetime)
) AS o2
GROUP BY DATE_FORMAT(o2.datetime2, '%W')
ORDER BY 1 DESC

我在等你的解决方案。

最佳答案

在这种情况下,substring_index()/group_concat() 技巧可能是表达查询的最佳方式:

SELECT MAX(o2.dailytotal) AS DailyTotal,
DATE_FORMAT(o2.datetime2, '%W') AS DayOfTheWeek,
SUBSTRING_INDEX(GROUP_CONCAT(o2.datetime2 ORDER BY o2.dailytotal DESC), ',', 1) AS ActualDate
FROM (SELECT DATE(s1.datetime) AS datetime2,
SUM(s1.ordertotal) AS dailytotal
FROM `order` o1
GROUP BY DATE(o1.datetime)
) o2
GROUP BY DATE_FORMAT(o2.datetime2, '%W')
ORDER BY DailyTotal DESC;

这有一些问题(例如将日期转换为字符串以及中间 group_concat() 字符串可能不够大——可以调整)。但是,替代方案会导致更复杂的查询。

您的版本只返回一个不确定的日期。

关于mysql - 一周中最好的一天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31221141/

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