当前位置: 首页 > 面试题库 >

PostgreSQL:生成序列

步德宇
2023-03-14
问题内容

下面的查询生成一行DNA序列

prepare dna_length(int) as
with t1 as (select chr(65) as s union select chr(67) union select chr(71) union select chr(84) ),

 t2 as ( select s, row_number() over() as rn from t1),

 t3 as ( select generate_series(1,$1) as i,round(random() * 4 + 0.5) as rn ),

 t4 as ( select t2.s from t2 join t3 on (t2.rn=t3.rn))

select array_to_string(array(select s from t4),'') as dna ;

execute dna_length(20);

结果-dna CCCGGTTCTCCCCATGCAGG

我想生成10个随机DNA序列


问题答案:

像这样吗?

select x, string_agg((array['A', 'C', 'G', 'T'])[1 + floor(random() * 4)], '')
from generate_series(1, 20, 1) gsn(n) cross join
     generate_series(1, 10, 1) gsx(x)
group by x


 类似资料:
  • 问题内容: 我想生成一个日期列表,希望能与另一个表连接,但是我不知道要使用什么语法,类似于以下内容: 我想要日期,因此不必在客户端进一步处理数据。我正在使用它来显示类似于此的表: 问题答案: 日期清单 使用generate_series函数获取可以添加到日期的数字列表,以获取日期列表: 结果: 旋转 问题的后半部分涉及透视结果集- 将行数据转换为列数据。PIVOT和UNPIVOT是ANSI,但我目

  • 问题内容: 我可以为一个实体使用多个序列生成器吗? 问题答案: 你不能。该生成器仅适用于标识符列。 确保使用脚本(例如)创建此序列: 然后使用如下映射:

  • 问题内容: 我有一个用序列生成的主键定义的实体: 我正在使用PostgreSQL,并且此密钥定义为序列号。根据PostgreSQL 退货 当我执行create()来持久化此实体的实例时,我在日志中看到以下内容(不相关的内容已被删除): 05 15:15:26.948 org.hibernate.id.enhanced.SequenceStructure [DEBUG]-获得的序列值:1604 05

  • 我有两个表A(id,col1,col2)和B(col3,col4,col5,col6) 这引发错误 为什么postgres不自动为列“id”生成值?如果我从表B中提供“id”,或者如果我插入单行(没有select)并为自动生成的列提供“default”关键字,查询就可以工作。 编辑:表创建查询

  • 问题内容: 我有一个带有列的表,我需要编写一个查询/函数来生成从列的值到列的值的月份列表。 例如: 将生成以下列表: 我怎么做?我从未使用PostgreSQL生成不存在的数据…它一直在数据库中找到正确的数据…有什么想法可以做到这一点吗?它在查询中可行吗? 问题答案: 您可以使用以下函数生成数据序列: 这会以漂亮的格式为每个月生成一行。如果您希望将其像一个列表,则可以将它们全部合并到一个外部查询中:

  • 看完这篇博文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