如何根据MySQL中的日期合并最后一行的组?

时间:2017-08-13 12:02:39

标签: mysql group-by

我有files表,方向为inout

如果状态计数超过4并且保留第1到第4列,我应该如何对数据求和。现在我使用Having来过滤那些不是我想要的数据。

当我按status字段分组时,结果可能超过4行,具有不同的状态(例如,当我使用年度分辨率(%Y)时)。

SELECT DATE_FORMAT(start_time, '%Y-%m-%d') start_time, status, count(*) stat_count
FROM files WHERE direction='out' 
AND start_time > '2017-17-01' 
GROUP BY DATE_FORMAT(start_time, '%Y-%m-%d'), status HAVING stat_count>10 ORDER BY start_time, stat_count DESC

如何在other列中添加其他数据的计数(*)?

修改-1: 这是一个示例结果:

start_time   status         stat_count
2017-05-01   success            23
2017-05-01   failed_permission  14
2017-05-01   failed_io          13
2017-05-01   file_not_found     7
2017-05-01   unknown            2
2017-05-01   large_file         1
2017-05-03   success            23
2017-05-03   failed_permission  14
2017-05-03   failed_io          13
2017-05-03   file_not_found     7
2017-05-03   large_file         1
2017-05-03   exception          1

根据日期状态计数超过4时,应根据other在名为start_time的列中对其进行求和:

start_time   status         stat_count
2017-05-01   success            23
2017-05-01   failed_permission  14
2017-05-01   failed_io          13
2017-05-01   file_not_found     7
2017-05-01   other              3
2017-05-03   success            23
2017-05-03   failed_permission  14
2017-05-03   failed_io          13
2017-05-03   file_not_found     7
2017-05-03   other              2

NB:他们不会根据他们的价值求和。严格限制每天的行数限制。如果有4行,值为5,4,3,1,则它们将保留,因为我们还没有达到第5行。

0 个答案:

没有答案