如何解决MySQL累积和按日期分组
起初,我不明白您要尝试进行总运行。外观如下:
SET @runningTotal = 0;
SELECT
e_date,
num_interactions,
@runningTotal := @runningTotal + totals.num_interactions AS runningTotal
FROM
(SELECT
DATE(eDate) AS e_date,
COUNT(*) AS num_interactions
FROM example AS e
GROUP BY DATE(e.Date)) totals
ORDER BY e_date;
由于您的加入,您可能会得到重复。也许e1某些行有多个匹配项,这使您的人数膨胀了。要么连接中的比较,要么还比较秒,这不是您期望的。
无论如何,不要将datetime字段分成几天和几个月,而只是从中剥离时间。这是您的操作方式。
SELECT
DATE(e.Date) AS e_date,
count(e.ID) AS num_interactions
FROM example AS e
JOIN example e1 ON DATE(e1.Date) <= DATE(e.Date)
GROUP BY DATE(e.Date);
解决方法
我知道有一些与此相关的帖子,但是我的情况有些不同,因此我希望获得一些帮助。
我需要从数据库中提取一些数据,这些数据是每天交互的累积计数。目前这就是我所拥有的
SELECT
e.Date AS e_date,count(e.ID) AS num_interactions
FROM example AS e
JOIN example e1 ON e1.Date <= e.Date
GROUP BY e.Date;
这样的输出接近我想要的,但不完全是我所需要的。我遇到的问题是日期与发生互动的时分秒存储在一起,因此group by不能将天分组在一起。
这就是输出的样子。http://screencast.com/t/N1KFNFyil
12月23日有5次互动,但由于时间戳不同,因此未归类。所以我需要找到一种忽略时间戳的方法,而只看一天。
如果我尝试将GROUP BY
DAY(e.Date)
其仅按日期进行分组(即,每个月的1日发生的所有事件都分组为一行),并且输出结果根本不是我想要的http://screencast.com/t/HN6DH3GV63M
GROUP BY DAY(e.Date),MONTH(e.Date)
将其按月和月中的天进行拆分,但计数再次关闭。
我根本不是MySQL专家,所以我对丢失的内容感到困惑
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。