问题标签 [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.
php - CakePHP 使用 LEFT JOIN 和 generate_series 查找
基本上,是否有可能,如果可以,如何在不使用 CakePHP 2.0.6 中的原始 query() 方法的情况下执行以下代码。我正在使用 PostgreSQL(这generate_series()
是一个函数)。那么,您如何使用 CakePHP 的方式进行这种查询呢?
编辑 一位用户说我可以尝试在 Task 上使用 find 调用并右加入 generate_series()。这是我的尝试。这段代码抛出了一个错误,因为 CakePHP 在 generate_series 的函数参数周围加上了双引号。我想知道我怎样才能让它不这样做?
哪些产品有以下 SQL:
sql - 检索任意时间间隔的聚合
这是我到目前为止的查询,用于创建每日柱:
将“小时”更改为“分钟”或“天”会给我对应于这些单位的条形图。
但是,如果我想要 5 分钟或 15 分钟的酒吧怎么办?date_trunc()
不支持这些,我正在寻找一种优雅的方式来做到这一点。
postgresql - PostgreSQL volatile 表达式和子查询
在 Bruce Momjian 的博客文章通过 SQL 生成随机数据中,他使用以下代码生成 5 个随机字符串:
我想知道为什么需要第 6 行的“b * 0”。当我删除它时,结果变为 5 个完全相同的字符串,这意味着 Postgres 缓存了外部选择表达式(结果)!
我找不到表达式缓存在 Postgres 中是如何工作的。根据文档random() 函数被标记为 VOLATILE,所以,我希望任何表达式都依赖于它也是 volatile 的。
Postgres 中的表达式缓存是如何工作的?它在任何地方都有记录吗?为什么 'b*0' 禁用了 random() 没有的缓存?
更新:
为了研究这个问题,我将 'b * 0' 移动到 floor() 调用内部,使其与 random() 处于相同的位置/级别:
结果仍未缓存;不同的字符串。
更新:显示问题的另一个示例
sql - 计算两个日期之间的整月
我已经为此工作了几个小时,没有运气并且碰壁了。我的数据如下所示:
我要做的是在两个日期之间的每个月的计数中加 1。所以我的输出理想情况下是这样的:
换句话说,它应该检查两个日期之间的“空”月份并将它们加 1。
这是我到目前为止制定的代码。它基本上会计算两个日期之间的月数,并将它们分组为月和年。
这就是我卡住的地方——我不知道如何为每个“空”月实际添加 1。
sql - PostgreSQL:频率表扩展
有谁知道如何在 PostgreSQL 中扩展频率表?
例如,变换表 x:
进入
设置代码:
postgresql - PostgreSQL:如何使用 generate_series() 找出列中缺失的数字?
results
我有一个类型的列,int
但各种测试失败并且没有添加到表中。我想创建一个查询,该查询返回commandid
在results
. 我认为上面的查询会做我想要的。commandid
但是,如果我使用超出预期可能范围的范围(如负数),它甚至不起作用。
postgresql - 这个 generate_series() 查询中的“sa”是什么意思
我正在尝试返回工作日,但我不明白s.a
,s(a)
在此查询中:
有人可以为我解释一下吗?
postgresql - PostgreSQL 连接以使用 generate_series 对表进行非规范化
我有这张桌子:
我想以这种方式“去规范化”行:
所以每个名字的行数等于计数列:我有 4 行 john,2 行 mark,3 行 albert。但是如果我不知道最高计数(在本例中为 4),我将无法使用 generate_series() 函数。有没有办法在不知道 MAX(count) 的情况下做到这一点?
sql - 按数据区间分组
我有一个表,它存储一段时间内网络上的带宽使用情况。一列将包含日期时间(主键),另一列将记录带宽。每分钟记录一次数据。我们将在其他列中及时记录其他数据。
如果用户每隔 15 分钟请求数据(在给定开始和结束日期的 24 小时内),是否可以通过单个查询来获取我需要的数据,或者我是否必须编写存储过程/游标来执行此操作? 然后用户可以请求 5 分钟间隔数据等。
我很可能会使用 Postgres,但还有其他更好的 NOSQL 选项吗?
有任何想法吗?
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
表中,他们每天在该任务中工作的小时数。