zoukankan      html  css  js  c++  java
  • Q200510-02-02: 重复的DNA序列 SQL解法

    重复的DNA序列
    所有 DNA 都由一系列缩写为 A,C,G 和 T 的核苷酸组成,例如:“ACGAATTCCG”。在研究 DNA 时,识别 DNA 中的重复序列有时会对研究非常有帮助。

    编写一个函数来查找 DNA 分子中所有出现超过一次的 10 个字母长的序列(子串)。

    示例:

    输入:s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"
    输出:["AAAAACCCCC", "CCCCCAAAAA"]

    使用Oracle11g数据库

    最终SQL及结果:

    SQL> select sub from
      2  (select count(*) as cnt,sub from
      3  (select substr(a.sery,b.rn,10) as sub
      4  from tb_string a,
      5  (select rownum as rn from dual connect by level<=(select length(max(sery)) from tb_string )) b) c
      6  group by sub) d
      7  where d.cnt>1;
    
    SUB
    --------------------
    AAAAACCCCC
    CCCCCAAAAA

    思考过程:

    create table tb_string(
        id number(4,0) primary key,
        sery nvarchar2(50) not null)
        
    insert into tb_string(id,sery) values('1','AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT');
    
    select rownum
    from dual
    connect by level<=(select length(max(sery)) from tb_string );
    
    select *
    from tb_string,
    (select rownum from dual connect by level<=(select length(max(sery)) from tb_string )) a
    
    select substr(a.sery,b.rn,10) as sub
    from tb_string a,
    (select rownum as rn from dual connect by level<=(select length(max(sery)) from tb_string )) b
    
    select count(*) as cnt,sub from
    (select substr(a.sery,b.rn,10) as sub
    from tb_string a,
    (select rownum as rn from dual connect by level<=(select length(max(sery)) from tb_string )) b) c
    group by sub
    
    select sub from
    (select count(*) as cnt,sub from
    (select substr(a.sery,b.rn,10) as sub
    from tb_string a,
    (select rownum as rn from dual connect by level<=(select length(max(sery)) from tb_string )) b) c
    group by sub) d
    where d.cnt>1

    --2020年5月11日 --

  • 相关阅读:
    ajax调接口示例
    JQuery的ready函数与JS的onload的区别详解
    DIV拖拽
    Lasso估计学习笔记(二)
    Lasso估计论文学习笔记(一)
    ubuntu下部署mongodb以及设置允许远程连接
    C#获取Honeywell voyager 1400g扫码后的数据
    vs2015“当前不会命中断点 还没有为该文档加载任何符号”的解决方法
    pyqt4 python2.7 中文乱码的解决方法
    使用pip 提示UnicodeDecodeError: 'ascii' codec can't decode解决方法
  • 原文地址:https://www.cnblogs.com/heyang78/p/12867346.html
Copyright © 2011-2022 走看看