我有一个A
带有startdate
列的表,TIMESTAMP WITHOUT TIME ZONE
我需要编写一个查询/函数来生成从MIN
列的值到列的值的月份列表MAX
。
例如:
startdate
2014-12-08
2015-06-16
2015-02-17
将生成以下列表: (Dec-14,Jan-15,Feb-15,Mar-15,Apr-15,May-15,Jun-15)
我怎么做?我从未使用PostgreSQL生成不存在的数据…它一直在数据库中找到正确的数据…有什么想法可以做到这一点吗?它在查询中可行吗?
您可以使用以下generate_series()
函数生成数据序列:
SELECT to_char(generate_series(min, max, '1 month'), 'Mon-YY') AS "Mon-YY"
FROM (
SELECT date_trunc('month', min(startdate)) AS min,
date_trunc('month', max(startdate)) AS max
FROM a) sub;
这会以漂亮的格式为每个月生成一行。如果您希望将其像一个列表,则可以将它们全部合并到一个外部查询中:
SELECT string_agg("Mon-YY", ', ') AS "Mon-YY list"
FROM (
-- Query above
) subsub;
SQLFiddle在这里
问题内容: 我想生成一个包含两个日期之间所有月份的python列表,其输入和输出的格式如下: 问题答案: 更新: 根据一个评论的要求进行一些解释。这里存在三个问题:将日期解析为适当的数据结构();根据两个极端和步骤(一个月)获得日期范围;格式化输出日期()。该类型会使减法运算符重载,因此很有意义。结果是一个对象,代表两个日期之间的差异,并且该属性以天为单位表示此差异。没有属性,因此我们一次迭代一天
问题内容: 我想生成一个日期列表,希望能与另一个表连接,但是我不知道要使用什么语法,类似于以下内容: 我想要日期,因此不必在客户端进一步处理数据。我正在使用它来显示类似于此的表: 问题答案: 日期清单 使用generate_series函数获取可以添加到日期的数字列表,以获取日期列表: 结果: 旋转 问题的后半部分涉及透视结果集- 将行数据转换为列数据。PIVOT和UNPIVOT是ANSI,但我目
问题内容: 在PostgreSQL中,是否可以生成一系列重复数字?例如,我要生成数字1到10,每个数字重复3次: 问题答案: 您可以将其交叉加入一系列3:
看完这篇博文https://blog . starkandwayne . com/2015/05/23/uuid-primary-keys-in-PostgreSQL/ 我想知道更多关于Django是如何生成uuid的,因为我用它们作为我的pk。嗯,根据文档,https://docs.djangoproject.com/es/1.9/ref/models/fields/#uuidfield,Dja
问题内容: 下面的查询生成一行DNA序列 结果-dna CCCGGTTCTCCCCATGCAGG 我想生成10个随机DNA序列 问题答案: 像这样吗?
我使用以下命令创建了一个名为hibernate_sequence的序列 这是我的hibernate注释dao 为了向表中插入新记录,hibernate正在生成错误的查询以获取下一个序列值。。Hibernate总是发出此查询。。不管我做什么。。 我使用的是oracle 10G,它总是报告以下错误。。 发出的查询应该是