如何对查询中的最大值求和,例如总和(MAX(值))

时间:2016-04-30 23:46:27

标签: mysql datetime aggregate-functions

我想在一个月内抓住每一天的最大数量。然后我想总结当月的最大值。

<label for="name">Your name:</label><br />
            <input id="name" type="text" />
            <textarea id="message" class="input" name="message" rows="7" cols="30">

我计算的方式是它全天递增。所以例如我在5/5/2016 08:00:00的时间里有500个计数但是在5/5/2016 23:59:59结束时计数是800.我只想抓住800编号而不是将500添加到800。

我想获取给定月份每天的最大值。然后我想总结所有最大值以创建月份的摘要。

1 个答案:

答案 0 :(得分:0)

我猜你是想按月总结你的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很方便:它会获取DATETIMEDATE值,并将其转换为该月的最后一天。