问题标签 [generate-series]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - 按任意时间间隔计算行数的最佳方法
我的应用程序有一个Events
带有时间戳事件的表。
我需要报告每个最近N
时间间隔内的事件计数。对于不同的报告,间隔可以是“每周”或“每天”或“每小时”或“每 15 分钟间隔”。
例如,用户可以显示他们每周、每天、每小时或每一刻钟收到了多少订单。
1) 我的偏好是动态地执行一个按任意时间间隔分组的 SQL 查询(我正在使用 Postgres)。有没有办法做到这一点?
2)一个简单但丑陋的蛮力方法是对按时间戳排序的开始/结束时间范围内的所有记录进行一次查询,然后有一个方法手动建立一个按任何时间间隔的计数。
3)另一种方法是为每个间隔向事件表添加单独的字段并静态存储一个the_week
the_day
,the_hour
和the_quarter_hour
字段,因此我在创建记录时(一次)而不是每次我报告该字段时都接受“命中” .
鉴于我可以修改模型并在需要时预存储间隔数据(尽管以将表宽度加倍的适度费用),这里的最佳实践是什么?
sql - 合并 2 个表以加入
我正在使用 Postgres 9.1,我有一个查询返回 2 列,即使没有数据存在,我也希望复制这些列。我的查询的重要部分是
正如我所期望的那样,这将返回给我所有机构和所有 interval_times。现在我也想要没有数据的行。我可以执行以下操作来一次获取任何一个
或者
但是,我想将它们结合起来,以便获得所有机构的所有 interval_times。似乎最好的办法是创建某种中间表,其中包含为每个 interval_time 重复的每个机构 ID,然后在其上进行 RIGHT JOIN,但我不知道该怎么做。任何帮助将非常感激。
编辑
玩了一会儿之后,我想做的似乎是以下,但我的语法是错误的
sql - 在 PostgreSQL 中,generate_series() 无法按预期使用 sum
我有一些名为分类的表,其中包含classification_indicator_id
.
我需要总结这一点ID
并放入 1 天系列。
我需要添加大约 20 列(与另一列classification_indicator_id
)。
我修改了上一个问题的一些答案:
但仍然无法正常工作。sum
因为每一行都很大,并且当我添加额外的列时会增长。在segment1
2013-03-26 有 4 列的第二个表中应该与第一个表等中的数量相同。
sql - SQL 从 generate_series 中选择,按 user_id 过滤删除系列?
我在 postgresql 9.2.4 中有一个复杂的(对我来说)SQL 查询,使用 generate_series 和多个连接。我需要汇总锻炼表中某一天所有锻炼的次数,并确保这些锻炼属于当前用户完成的锻炼。最后,我需要将该表加入一个系列以显示缺失的日期(使用 generate_series)。
我的想法是在 from 子句中选择系列,然后将系列加入到子查询中,该子查询具有练习和锻炼表之间的内部连接的结果。例如,我有以下查询:
这给出了以下输出:
但是,我想按某些条件过滤:
例如。
但是,如果我将 WHERE 子句放入上面的查询中,输出是这样的:
该系列消失了。
如何按 user_id 过滤并保留系列?任何帮助将非常感激。
sql - 在 postgresql 的列中生成一系列月份
在 postgresql 中,如何以“YYYY-MM”格式生成一系列每月日期,其中最早的日期是用户的创建月份,直到当前月份?
sql - 在 redshift 中使用 sql 函数 generate_series()
我想在redshift中使用生成系列功能,但没有成功。
红移文档说它不受支持。以下代码确实有效:
输出:
我想对日期做同样的事情。我尝试了许多变体,包括:
踢出:
也试过:
并尝试:
两者都踢出:
如果不是,我将使用另一篇文章中的此代码:
sql - PostgreSQL增量日期?
我有一个包含以下数据的数据库表:
请注意,缺少日期:2014-05-04
。我应该如何更改以下查询:
所以我最终会得到以下输出:
这可能吗?
sql - 每月选择活跃员工,日期格式为 dd/mm/yyyy
我很难通过写作来解释这一点,所以请耐心等待。
我正在做这个项目,在这个项目中,我必须选择一个月和一年来了解一年中那个月份的所有在职员工。但在我的数据库中,我存储了他们在 dd 中开始和结束的日期/mm/yyyy 格式。
因此,如果我有一个工作了 4 个月的员工,例如。从 01/01/2013 到 01/05/2013 我将在四个月内拥有他。我需要让他出现 4 张桌子(每个活跃月份一张),以及那些月份活跃的其他员工。在这种情况下,这些将是:2013 年 1 月、2 月、3 月和 4 月。
问题是我不知道如何在这里进行查询或 php 处理来实现这一点。
我能想到的只是(我每个月都会运行这个查询,将年份和月份作为参数传递)
但这做不到,主要是因为month_and_year
必须是列而不是变量。
任何人的想法?
更新
是的,我很抱歉我忘了说我使用 DATE 作为数据类型。
我发现最简单的解决方案是使用 EXTRACT
这给了我 2013 年 6 月以来的所有记录,您确定可以用文字变量替换您喜欢的任何变量
php - 检索行数并在没有行时返回 0
我写了一个查询来检索我每天有多少网站注册:
但是,这只检索人们实际注册的天数的行。如果一天没有人注册,我想当天返回 0。有没有办法使用 SQL 来做到这一点,还是我必须使用 PHP 解析结果?