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

标签 mysql datetime aggregate-functions

我试图获取一个月中每一天的最大计数。然后我想对本月的最大值进行求和。

        $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这里很方便:它接受任何 DATETIMEDATE 值并将其转换为该月的最后一天。

关于mysql - 如何对查询中的最大值求和,例如总和(最大值(值)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36961472/

相关文章:

Mysql: SELECT * FROM ....没有一个字段

mysql 添加自动增量和附加键

python - 如何在 python 中创建时间戳的线性空间?

postgresql - 在 Postgresql 中选择位掩码

excel - QLikView 计算维度与聚合 w.r.t.数据透视表中的其他维度

php - jQuery 和 PHP 的聊天功能不写入数据库

MySQL:文本占用多少空间?

perl - 当我从临近年底的日期中减去天数时,为什么 DateTime strptime 会给出错误的年份?

c# - 为什么 Convert.ToDateTime() 在此示例中不起作用?

sql - 表中每天的值总和