问题标签 [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 回答
5228 浏览

php - CakePHP 使用 LEFT JOIN 和 generate_series 查找

基本上,是否有可能,如果可以,如何在不使用 CakePHP 2.0.6 中的原始 query() 方法的情况下执行以下代码。我正在使用 PostgreSQL(这generate_series()是一个函数)。那么,您如何使用 CakePHP 的方式进行这种查询呢?

编辑 一位用户说我可以尝试在 Task 上使用 find 调用并右加入 generate_series()。这是我的尝试。这段代码抛出了一个错误,因为 CakePHP 在 generate_series 的函数参数周围加上了双引号。我想知道我怎样才能让它不这样做?

哪些产品有以下 SQL:

0 投票
1 回答
1480 浏览

sql - 检索任意时间间隔的聚合

这是我到目前为止的查询,用于创建每日柱:

将“小时”更改为“分钟”或“天”会给我对应于这些单位的条形图。

但是,如果我想要 5 分钟或 15 分钟的酒吧怎么办?date_trunc()不支持这些,我正在寻找一种优雅的方式来做到这一点。

0 投票
1 回答
1254 浏览

postgresql - PostgreSQL volatile 表达式和子查询

在 Bruce Momjian 的博客文章通过 SQL 生成随机数据中,他使用以下代码生成 5 个随机字符串:

我想知道为什么需要第 6 行的“b * 0”。当我删除它时,结果变为 5 个完全相同的字符串,这意味着 Postgres 缓存了外部选择表达式(结果)!

我找不到表达式缓存在 Postgres 中是如何工作的。根据文档random() 函数被标记为 VOLATILE,所以,我希望任何表达式都依赖于它也是 volatile 的。

Postgres 中的表达式缓存是如何工作的?它在任何地方都有记录吗?为什么 'b*0' 禁用了 random() 没有的缓存?

更新:

为了研究这个问题,我将 'b * 0' 移动到 floor() 调用内部,使其与 random() 处于相同的位置/级别:

结果仍未缓存;不同的字符串。

更新:显示问题的另一个示例

0 投票
3 回答
1858 浏览

sql - 计算两个日期之间的整月

我已经为此工作了几个小时,没有运气并且碰壁了。我的数据如下所示:

我要做的是在两个日期之间的每个月的计数中加 1。所以我的输出理想情况下是这样的:

换句话说,它应该检查两个日期之间的“空”月份并将它们加 1。

这是我到目前为止制定的代码。它基本上会计算两个日期之间的月数,并将它们分组为月和年。

这就是我卡住的地方——我不知道如何为每个“空”月实际添加 1。

0 投票
1 回答
1524 浏览

sql - PostgreSQL:频率表扩展

有谁知道如何在 PostgreSQL 中扩展频率表?

例如,变换表 x:

进入

设置代码:

0 投票
4 回答
7365 浏览

postgresql - PostgreSQL:如何使用 generate_series() 找出列中缺失的数字?

results我有一个类型的列,int但各种测试失败并且没有添加到表中。我想创建一个查询,该查询返回commandidresults. 我认为上面的查询会做我想要的。commandid但是,如果我使用超出预期可能范围的范围(如负数),它甚至不起作用。

0 投票
1 回答
1485 浏览

postgresql - 这个 generate_series() 查询中的“sa”是什么意思

我正在尝试返回工作日,但我不明白s.as(a)在此查询中:

有人可以为我解释一下吗?

0 投票
2 回答
2623 浏览

postgresql - PostgreSQL 连接以使用 generate_series 对表进行非规范化

我有这张桌子:

我想以这种方式“去规范化”行:

所以每个名字的行数等于计数列:我有 4 行 john,2 行 mark,3 行 albert。但是如果我不知道最高计数(在本例中为 4),我将无法使用 generate_series() 函数。有没有办法在不知道 MAX(count) 的情况下做到这一点?

0 投票
2 回答
6125 浏览

sql - 按数据区间分组

我有一个表,它存储一段时间内网络上的带宽使用情况。一列将包含日期时间(主键),另一列将记录带宽。每分钟记录一次数据。我们将在其他列中及时记录其他数据。

如果用户每隔 15 分钟请求数据(在给定开始和结束日期的 24 小时内),是否可以通过单个查询来获取我需要的数据,或者我是否必须编写存储过程/游标来执行此操作? 然后用户可以请求 5 分钟间隔数据等。

我很可能会使用 Postgres,但还有其他更好的 NOSQL 选项吗?

有任何想法吗?

0 投票
1 回答
550 浏览

postgresql - PostgreSQL 访问 generate_series() 单元

我通过 PostgreSQLgenerate_series(min, max)以下列方式生成日期系列:

getstartdate()并且getenddate()每个都返回给定任务的开始和结束日期。我有更多的桌子Employees(employeeid, taskid, worktime)Tasks(taskid, startdate, enddate)

我的目标是从我生成的系列中按每天对员工的工作时间进行分组。如何执行此连接?请注意,我无法直接访问这些列startdate,并且enddate在表格中Tasks我只能通过上面提到的那些函数访问日期。工作时间以小时/天为单位,因此我必须通过SUM()员工在系列中给定日期的每项任务对其进行汇总。问题是我不知道如何访问生成的系列中的日期。

编辑
数据结构:

一些解释:
整个数据库用于模拟,因此首先您定义一个任务计划(在表中tasks),然后运行将结果插入的模拟taskresults。如您所见,我只将 存储duration在结果中,这就是为什么我只能使用getstartdate/getenddate函数访问每个任务的日期范围。该表employeetasks基本上将员工从employees表中分配到task表中,他们每天在该任务中工作的小时数。