问题标签 [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.

0 投票
1 回答
8140 浏览

sql - 按任意时间间隔计算行数的最佳方法

我的应用程序有一个Events带有时间戳事件的表。

我需要报告每个最近N时间间隔内的事件计数。对于不同的报告,间隔可以是“每周”或“每天”或“每小时”或“每 15 分钟间隔”。

例如,用户可以显示他们每周、每天、每小时或每一刻钟收到了多少订单。

1) 我的偏好是动态地执行一个按任意时间间隔分组的 SQL 查询(我正在使用 Postgres)。有没有办法做到这一点?

2)一个简单但丑陋的蛮力方法是对按时间戳排序的开始/结束时间范围内的所有记录进行一次查询,然后有一个方法手动建立一个按任何时间间隔的计数。

3)另一种方法是为每个间隔向事件表添加单独的字段并静态存储一个the_week the_day,the_hourthe_quarter_hour字段,因此我在创建记录时(一次)而不是每次我报告该字段时都接受“命中” .

鉴于我可以修改模型并在需要时预存储间隔数据(尽管以将表宽度加倍的适度费用),这里的最佳实践是什么?

0 投票
3 回答
126 浏览

sql - 合并 2 个表以加入

我正在使用 Postgres 9.1,我有一个查询返回 2 列,即使没有数据存在,我也希望复制这些列。我的查询的重要部分是

正如我所期望的那样,这将返回给我所有机构和所有 interval_times。现在我也想要没有数据的行。我可以执行以下操作来一次获取任何一个

或者

但是,我想将它们结合起来,以便获得所有机构的所有 interval_times。似乎最好的办法是创建某种中间表,其中包含为每个 interval_time 重复的每个机构 ID,然后在其上进行 RIGHT JOIN,但我不知道该怎么做。任何帮助将非常感激。

编辑

玩了一会儿之后,我想做的似乎是以下,但我的语法是错误的

0 投票
2 回答
396 浏览

postgresql - sum 和 generate series 在 postgresql 中不起作用

classification_indicator_id列中,我有一些数字。我想在 1 天系列中总结这些数字。我写了下面的查询

但我总是得到类似的东西:

我确信应该是这样的:

SQL小提琴

0 投票
2 回答
913 浏览

sql - 在 PostgreSQL 中,generate_series() 无法按预期使用 sum

我有一些名为分类的表,其中包含classification_indicator_id.
我需要总结这一点ID并放入 1 天系列。
我需要添加大约 20 列(与另一列classification_indicator_id)。
我修改了上一个问题的一些答案:

但仍然无法正常工作。sum因为每一行都很大,并且当我添加额外的列时会增长。在segment12013-03-26 有 4 列的第二个表中应该与第一个表等中的数量相同。

0 投票
2 回答
2059 浏览

sql - SQL 从 generate_series 中选择,按 user_id 过滤删除系列?

我在 postgresql 9.2.4 中有一个复杂的(对我来说)SQL 查询,使用 generate_series 和多个连接。我需要汇总锻炼表中某一天所有锻炼的次数,并确保这些锻炼属于当前用户完成的锻炼。最后,我需要将该表加入一个系列以显示缺失的日期(使用 generate_series)。

我的想法是在 from 子句中选择系列,然后将系列加入到子查询中,该子查询具有练习和锻炼表之间的内部连接的结果。例如,我有以下查询:

这给出了以下输出:

但是,我想按某些条件过滤:

例如。

但是,如果我将 WHERE 子句放入上面的查询中,输出是这样的:

该系列消失了。

如何按 user_id 过滤并保留系列?任何帮助将非常感激。

0 投票
2 回答
3773 浏览

sql - 在 postgresql 的列中生成一系列月份

在 postgresql 中,如何以“YYYY-MM”格式生成一系列每月日期,其中最早的日期是用户的创建月份,直到当前月份?

0 投票
7 回答
38386 浏览

sql - 在 redshift 中使用 sql 函数 generate_series()

我想在redshift中使用生成系列功能,但没有成功。

红移文档说它不受支持。以下代码确实有效:

输出:

我想对日期做同样的事情。我尝试了许多变体,包括:

踢出:

也试过:

并尝试:

两者都踢出:

如果不是,我将使用另一篇文章中的此代码:

PostgreSQL generate_series() 以 SQL 函数作为参数

0 投票
3 回答
303 浏览

sql - PostgreSQL增量日期?

我有一个包含以下数据的数据库表:

请注意,缺少日期:2014-05-04。我应该如何更改以下查询:

所以我最终会得到以下输出:

这可能吗?

0 投票
3 回答
760 浏览

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 月以来的所有记录,您确定可以用文字变量替换您喜欢的任何变量

0 投票
4 回答
1553 浏览

php - 检索行数并在没有行时返回 0

我写了一个查询来检索我每天有多少网站注册:

但是,这只检索人们实际注册的天数的行。如果一天没有人注册,我想当天返回 0。有没有办法使用 SQL 来做到这一点,还是我必须使用 PHP 解析结果?