【发布时间】:2020-10-14 13:57:55
【问题描述】:
我正在尝试计算在给定日期可能多次出现的值的累积总和。因此我只想保持每一天的最大值。
目前我有:
SELECT
DATE_FORMAT(created_at, '%d/%m') AS day1,
SUM(principal) over (order by created_at) AS tot
FROM loan;
输出:
[
{
"day1" : "21/08",
"tot" : 200
},
{
"day1" : "21/08",
"tot" : 1200
},
{
"day1" : "21/08",
"tot" : 2200
},
{
"day1" : "21/08",
"tot" : 2500
},
{
"day1" : "25/08",
"tot" : 4500
},
{
"day1" : "25/08",
"tot" : 6500
},
{
"day1" : "27/08",
"tot" : 7000
},
{
"day1" : "27/08",
"tot" : 7600
}
]
我知道我需要按天对它进行分组,但它需要为每组天取最大值。有什么想法吗?
当我这样分组时:
SELECT
DATE_FORMAT(created_at, '%d/%m') AS day1,
SUM(principal) over (order by created_at) AS tot
FROM loan
GROUP BY day1;
我明白了:
[
{
"day1" : "21/08",
"tot" : 1000
},
{
"day1" : "25/08",
"tot" : 3000
},
{
"day1" : "27/08",
"tot" : 3500
},
{
"day1" : "30/08",
"tot" : 4200
}
]
这显然是错误的。我不知道为什么它会给出那个输出。但是我怎样才能让它正确呢?
【问题讨论】:
-
请向我们展示您想要的结果。
标签: mysql sql datetime sum window-functions