我试图获取一个月中每一天的最大计数。然后我想对本月的最大值进行求和。
$result = mysql_query(
"
SELECT DATE_FORMAT(orderDate,'%M %e, %Y') orderDate, MAX(Count) AS maxCount
FROM
(
SELECT DATE_FORMAT(orderDate,'%M %e, %Y') orderDate, SUM(Count) AS sumCount
FROM testLocation
WHERE orderDate >= '$data1' AND orderDate < '$data2' + INTERVAL 1 DAY
)
GROUP BY MONTH(orderDate)
"
,$link
);
我的计数方式是它在一天中不断增加。例如,我在 5/5/2016 08:00:00 时的计数为 500,但在一天结束时 5/5/2016 23:59:59 计数为 800。我只想获取 800数字,而不是将 500 添加到 800。
我想获取给定月份每一天的最大值。然后我想对所有最大值进行求和以创建该月的摘要。
最佳答案
我猜您正在尝试按月总结您的 testLocation
表。很难从您的查询中准确猜测您想要做什么。
编辑:
首先,您需要每日汇总,以获得最高的 Count
值。
SELECT DATE(orderDate) AS day,
MAX(Count) AS dayCount
FROM testLocation
GROUP BY DATE(orderDate)
这样您每天都会获得一行,并获得当天 Count
的最高值。
然后您需要每月汇总来添加每日汇总的行。为此,您可以使用每日汇总作为虚拟表。
SELECT LAST_DAY(day) monthEnding,
SUM(dayCount) AS monthSum
FROM (
SELECT DATE(orderDate) AS day,
MAX(Count) AS dayCount
FROM testLocation
GROUP BY DATE(orderDate)
) m
GROUP BY LAST_DAY(day)
这会得到你想要的。 LAST_DAY()
function这里很方便:它接受任何 DATETIME
或 DATE
值并将其转换为该月的最后一天。
关于mysql - 如何对查询中的最大值求和,例如总和(最大值(值)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36961472/