问题标签 [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 - 2 小时间隔的最小值、最大值、平均值
在下面的查询中,我正在使用 PostgreSQL 计算两小时间隔的最小值、最大值和平均值。
该查询在偶数开始时间可以正常工作(..04:00:00+05:30)
,但它给出的结果与奇数开始时间的偶数开始时间相似(..05:00:00+05:30)
。乘以 2 的倍数返回偶数小时,这就是问题所在。
奇数开始时间的输出 ('2012-10-23 01:00:00+05:30')
偶数开始时间的输出 ('2012-10-23 02:00:00+05:30')
sql - 在 generate_series() 上加入计数查询并将 Null 值检索为“0”
我想使用每月计算 ID generate_series()
。此查询适用于 PostgreSQL 9.1:
这是我的输出:
但我想要得到的是这个输出(一月份的'0'值):
id
尽管如此,应该列出没有的月份。
任何想法如何解决这个问题?
样本数据:
performance - PostgreSQL查询速度是可变的
语境
我有一个保存 netflow 数据的表(路由器拦截的所有数据包)。该表目前约有 590 万行。
问题
我正在尝试一个简单的查询来计算每天收到的数据包数量,这不会花费很长时间。
我第一次运行它时,查询需要88 seconds,然后在第二次运行后,33 seconds,然后是5 seconds用于所有后续运行。
主要问题不是查询的速度,而是同样的查询执行3次后,速度快了近20倍。
我了解查询缓存的概念,但是原始查询运行的性能对我来说毫无意义。
测试
我用来加入的列 (datetime) 的类型为timestamptz
,并已编入索引:
看着EXPLAIN
陈述。执行上的区别在于Nested Loop
.
我已经有了VACUUM ANALYZE
表格,结果完全相同。
当前环境
- 在 VMware ESX 4.1 上运行的 Linux Ubuntu 12.04 VM
- PostgreSQL 9.1
- VM 有 2 GB RAM,2 个内核。
- 数据库服务器完全致力于此,没有做任何其他事情
- 每分钟插入表中(每分钟 100 行)
- 非常低的磁盘、内存或 CPU 活动
询问
首次运行说明(88 秒)
第三次运行的解释(5秒)
sql - 使用复合键生成 SQL 查询动态行
我的问题由 3 个部分组成。
第一部分:
有没有办法根据值生成行?
例如:
我想根据每个家庭的family_members_count
. 每张凭证都应该有一个唯一的 ID:
基表:
结果:
第二部分:
可以控制voucher_id复合键吗?我希望voucher_id
是这样的
如果north = 08并且我们处于第二个周期,它应该是:
... 等等。
第三部分:
我需要 MS Access 2010 SQL 和 PostgreSQL 9.1 SQL 中的解决方案。
postgresql - 在 PostgreSQL 中生成两个日期之间的时间序列
我有一个这样的查询,可以很好地在两个给定日期之间生成一系列日期:
它在我想要的和2004-03-07
之间生成 162 个日期。2004-08-16
这段代码的问题在于,当两个日期来自不同年份时,它不会给出正确的答案,例如当我尝试2007-02-01
和2008-04-01
.
有更好的解决方案吗?
regex - split_to_table() 按字符数且无分隔符
我需要将varchar
字段拆分为设定长度的行,但没有分隔符。
示例:
归档值:'Field example of varchar'
我想将其拆分为长度为 5 的行。结果应该是:
我试过这个查询:
但它不起作用,它返回五个空行。
sql - 如何在 DO 块中执行选择查询?
我想将下面的 SQL 代码从 MS SQL-Server 移植到 PostgreSQL。
这就是我到目前为止所拥有的。
如您所见,当我想使用加薪通知功能“打印”时遇到了一些问题。但我设法通过谷歌解决了这个问题。
根据以前的经验,我可以看出 Postgres 语法与 CTE 非常相似,我只需要在 CTE 之前添加一个递归,所以唯一真正的问题是我必须定义一些变量,我需要一个 do 块。
由此产生了一个简单的问题:
如何在 do 块中“执行”选择查询?我想在 pgAdmin3 的“数据输出”选项卡中查看结果。
而且我不想创建一个函数。
sql - 使用 generate_series() 修改 PL/pgSQL 函数
我正在开发一个不支持generate_series()
日期/时间序列函数变体的 PostgreSQL 8.3 版本。目前我有这个丑陋的解决方法,它使用第三个参数调用函数,例如:
我必须手动计算最后一个参数以确定generate_series()
.
修改此脚本以使函数调用中只需要两个参数的最佳方法是什么?
有没有办法修改下面的代码以同样的方式工作,只给这样的函数的两个参数?
更新:我尝试在下面的答案中提出很好的建议后修改我的代码,但仍然有一些错误:
sql - 在 postgresql 中生成系列时获得部分周
我正在尝试按周生成一系列日期,从 2013 年 3 月 1 日 00:00:00 到 2013 年 3 月 14 日 23:59:59。我到目前为止的查询看起来像这样
输出:
该查询部分有效,因为它返回如您所见的前两周,但它缺少从 2013 年 3 月 11 日到 2013 年 3 月 14 日的那一周。有没有办法获得最后一周,即使它还没有结束?
sql - 为给定月份生成一系列周间隔
在 Postgres 9.1 数据库中,我试图为给定月份生成一系列周,但有一些限制。我需要所有的星期都从星期一开始,并在他们开始或在另一个月结束时被削减。
例子:
对于 2013 年 2 月,我想生成一个这样的系列:
我现在的查询如下所示:
这个查询在前 4 周得到了我,但从 25 日起就错过了这一周。有可能拿到最后一周吗?