如何解决按时间间隔对事件进行分组和计数,再加上运行总计
如果我理解正确的话,你只是想GROUP BY
在你的表中的年,月,对于有每一行action
的create_entry
:
SELECT
DATE_PART('YEAR', period_start) as Year,
DATE_PART('MONTH', period_start) as Month,
COUNT(*) as Entries
FROM activity_log
WHERE action = 'create_entry'
GROUP BY Year, Month;
解决方法
我是Postgres的新用户,我敢肯定已经有了答案,但是我找不到。
我需要分析活动日志表中的一些数据,并将结果按时间段分组。
一个简单的问题版本是一个包含三个字段的表:
Column | Type | Modifiers
--------------+--------------------------+-------------------------------------
period_start | timestamp with time zone | not null
user_id | text | not null
action | text | not null
我要捕获的操作字符串可能是“ create_entry”(是的,我知道这很不错,因为它的数据库设计不错,但我坚持使用它)
我正在寻找的输出是一个报告,该报告按年份和月份显示了“ create_entry”操作的计数。就像是:
Year | Month | Entries
------+-------+----------
2013 | 12 | 14345
2014 | 1 | 9876
2014 | 2 | 10234
我的本能是通过子查询来攻击它,但是环顾四周似乎暗示着循环可能是解决之道。
无论哪种方式,我都无法尽力寻找正确方向的推动力。
编辑
基于我在键入此请求时出现的一个请求的补充问题。上面的一个变体将显示每月的累积总数(尽管我想我可以根据方法自己弄清楚这一点上面的内容-
我只是在与方法相关的情况下添加此内容。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。