sql—生成5个随机dna序列的查询,每个序列大约有20个碱基,

5cg8jx4n  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(439)

这个问题在这里已经有答案了

postgresql:generate sequence (2个答案)
10个月前关门了。
我得到了前20行要解决的查询,但我不知道如何将其扩展到5行

  1. prepare dna_length(int) as
  2. with t1 as (
  3. select chr(65) as s
  4. union select chr(67)
  5. union select chr(71)
  6. union select chr(84) )
  7. , t2 as ( select s,
  8. row_number() over() as rn from t1)
  9. , t3 as ( select generate_series(1,$1) as i,
  10. round(random() * 4 + 0.5) as rn )
  11. , t4 as ( select t2.s
  12. from t2 join t3 on (t2.rn=t3.rn))
  13. select
  14. array_to_string(array(select s from t4),'') as dna ;

在此处输入图像描述

ycggw6v2

ycggw6v21#

这对你有用吗?你可以把1美元放回去换掉20美元 t3 如果是的话。

  1. with t1 as (
  2. select 1 as rn, 'A' as s
  3. union select 2, 'C'
  4. union select 3, 'T'
  5. union select 4, 'G'
  6. ), t2 as (
  7. select generate_series(1, 5) as sample
  8. ), t3 as (
  9. select t2.sample, generate_series(1,20) as i,
  10. round(random() * 4 + 0.5) as rn
  11. from t2
  12. ), t4 as (
  13. select t3.sample, t3.i, t3.rn, t1.s
  14. from t3
  15. join t1 on t1.rn = t3.rn
  16. )
  17. select sample, string_agg(s, '' order by i)
  18. from t4
  19. group by sample
  20. order by sample;
  21. sample | string_agg
  22. --------+----------------------
  23. 1 | AGCATCAAGCGGTAAAAAAG
  24. 2 | ATATCGCGCCGAGGGAAGAC
  25. 3 | GAAACCCCATCTTAACTGGA
  26. 4 | AGTGAGGCCGCCACTCTACC
  27. 5 | AGTCCCCACAACGATTAGAA
  28. (5 rows)
展开查看全部

相关问题