当前位置: 首页 > 面试题库 >

按时间间隔对事件进行分组和计数,再加上运行总计

濮阳品
2023-03-14
问题内容

我是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

我的本能是通过子查询来攻击它,但是环顾四周似乎暗示着循环可能是解决之道。

无论哪种方式,我都无法尽力寻找正确方向的推动力。

编辑

基于我在键入此请求时出现的一个请求的补充问题。上面的一个变体将显示每月的累积总数(尽管我想我可以根据方法自己弄清楚这一点上面的内容-
我只是在与方法相关的情况下添加此内容。


问题答案:

如果我理解正确的话,你只是想GROUP BY在你的表中的年,月,对于有每一行actioncreate_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;

SQL小提琴



 类似资料:
  • 问题内容: 我有一个这样的dataFrame,我想每60分钟进行一次分组,然后从06:30开始分组。 我在用: 我得到这个分组: 但我正在寻找这个结果: 我如何告诉该功能以6小时30分开始以一小时为间隔进行分组? 如果 .groupby(pd.TimeGrouper(freq =‘60Min’)) 无法完成此 操作 ,最好的方法是怎么做? 致敬并非常感谢 问题答案: 使用会同中的参数。 指定将使时

  • 问题内容: 我需要将表分组为15分钟间隔。我可以这样做: 但是要在图表中显示返回的数据,我还需要插入没有任何数据且当前未出现在我的select语句中的间隔。我该如何插入这些? 问题答案: 用15分钟的增量创建一个带有所有可能时间戳的表,然后从该表向上面的查询进行LEFT JOIN。 如果您知道图表始终涵盖24小时,则只需创建一个数字为0-95的表格,然后为每个条目将其添加到图表的开始时间。

  • 问题内容: 我有一个这样的表: 我需要一个查询以n分钟的间隔对记录进行分组。 例如,输出(按60分钟分组): 到目前为止,由于间隔介于0到60分钟之间,因此我一直在使用此查询按10分钟间隔进行分组: 但是现在间隔可以是例如 125436758 分钟。 我无法创建新表,并且用户定义的间隔必须为n分钟。我正在使用SQL SERVER2012。谢谢。 问题答案:

  • 问题内容: 有人可以告诉我这为什么起作用: 但这失败了: 这是错误: 问题答案: 这行: 是一个简短的变量声明,右侧表达式为:。是包中的类型常量,其类型为;并且是一种 无类型数值常量 ,其在表达时,将可能的话采取适当的类型。由于具有作为其基础类型,因此可以在不损失精度的情况下将常量转换为常量,从而可以执行常量表达式。 另一行: 第一行是一个简短的变量声明,其中的类型将从右边的表达式中推断出来,这是

  • 问题内容: 我正在使用XmlHttpRequests将图像上传到服务器,并且想向用户显示这些上传的进度。 不幸的是,对我的onprogress-event处理程序的调用之间的间隔太大。对于500k图像,通常仅一次或两次调用onprogress。 这是我的代码: 可以更改此行为,还是在浏览器实现中将其硬编码? 问题答案: W3在其XMLHttpRequest Level 2 文档中提出了以下准则。显