我正在尝试按一周中的每一天获得记录的order值,基于一个包含以下列的表:
id
amount
date我想知道在MySQL中是否有一种简单的方法可以做到这一点?
我正在考虑将金额按日分组,然后按一周中的一天分组,然后只检索最高值。不过,我不确定这是否是最好的办法。
发布于 2019-05-04 04:41:15
这应该是您想做的事情;它会找到一周中每一天的最大总量,然后将其与每一天的总和相加,以找到每个工作日最大值发生的日期:
SELECT t.weekday, t.date, t.total
FROM (SELECT date, DATE_FORMAT(date, '%W') AS weekday, SUM(amount) AS total
FROM yourtable
GROUP BY date) t
JOIN (SELECT DATE_FORMAT(date, '%W') AS weekday, MAX(total) AS max_total
FROM (SELECT date, SUM(amount) AS total
FROM yourtable
GROUP BY date) t
GROUP BY weekday) w ON w.weekday = t.weekday AND w.max_total = t.total输出(用于我的演示)
weekday date total
Thursday 2019-04-11 110.00
Friday 2019-04-12 100.00
Saturday 2019-04-20 180.00
Sunday 2019-04-21 50.00
Monday 2019-04-22 160.00
Tuesday 2019-04-23 50.00
Wednesday 2019-04-24 230.00https://stackoverflow.com/questions/55979475
复制相似问题