mysql如何比较两列从第三列中找出max

b4wnujal  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(371)

这个问题在这里已经有答案了

sql仅选择列上具有最大值的行[重复](27个答案)
两年前关门了。
我有一个表,其中包含两个不同类别的每日条目。例子:

Date         |  CategoryID  |  Value
-----------------------------------
2016/02/01        1              1
2016/02/02        1              0
2016/02/03        1              2
2016/02/01        2              1
2016/02/02        2              1
2016/02/03        2              0
.
.
.
2017/02/01        1              0
2017/02/02        1              3
2017/02/03        1              1
2017/02/01        2              2
2017/02/02        2              1
2017/02/03        2              0

我要做的是遍历表格,为每个类别匹配每年的日期(例如02/01),然后得到历年的最大值。
因此,结果应该类似于类别1:

02/01        1              1
02/02        1              3
02/03        1              2

02/01        2              2
02/02        2              1
02/03        2              0

我只是不是100%确定正确的方法来有效地做到这一点,特别是如果这个表变得相当大。今后还会增加其他类别。

t3psigkw

t3psigkw1#

使用date\u format()、group by和max aggregation尝试以下操作

select date_format(`date`,'%m-%d') as d, categoryid, max(value) as value
from tablename
group by date_format(`date`,'%m-%d'),categoryid

相关问题