首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FIltering表示最大值

FIltering表示最大值
EN

Stack Overflow用户
提问于 2012-06-30 02:09:05
回答 2查看 61关注 0票数 0

我正在尝试编写一个查询,它将返回每个Operon的站点的最高实例。基本上每个操纵子可以有多个站点,但每个站点都有一个分数。我希望过滤返回,而不是多次列出给定的operon (每个站点一次),它将只在最高的站点列出一次。

我在下面看到的似乎返回了正确的结果,但它相当慢,我想看看是否有更快的方法来做这件事。

抱歉,如果这不是很清楚,MySQL对我来说是一个全新的世界,我不确定我提出这个问题的方式是否合理。

代码语言:javascript
复制
select `g`.`id`       AS `ID`, 
   `g`.`Name`     AS `GENE`,
   `o`.`id`       AS `OPID`,
   `os`.`site`    AS `BSID`,
   `s`.`Sequence` AS `SITE`,
   `s`.`Score`    AS `SCORE`

from(((( 
          `METAGENO`.`GENE`        `g` )
     join `METAGENO`.`OPERON`      `o` )
     join `METAGENO`.`OPERON_SITE` `os`)
     join `METAGENO`.`SITE`        `s` )

    where(
          (`o` .`id`     = `g` .`Operon`)
       and(`os`.`operon` = `o` .`id`    )
       and(`s` .`id`     = `os`.`site`  
       and(`s` .`Score`  = (select max(`s2`.`Score`)
                                from(`METAGENO`.`SITE` `s2`)
                                where(`s2`.`id` = `os`.`site`))))) GROUP BY `o`.`id`
EN

回答 2

Stack Overflow用户

发布于 2012-06-30 02:17:18

使用

代码语言:javascript
复制
GREATEST() 

用于两个或多个参数。

票数 0
EN

Stack Overflow用户

发布于 2012-06-30 02:17:48

您可以尝试创建一个内联视图,该视图计算所有id的最大分数,然后连接。

代码语言:javascript
复制
Select `g`.`id`       AS `ID`, 
   `g`.`Name`     AS `GENE`,
   `o`.`id`       AS `OPID`,
   `os`.`site`    AS `BSID`,
   `s`.`Sequence` AS `SITE`,
   `s`.`Score`    AS `SCORE`

from(((( 
          `METAGENO`.`GENE`        `g` )
     join `METAGENO`.`OPERON`      `o` )
     join `METAGENO`.`OPERON_SITE` `os`)
     join `METAGENO`.`SITE`        `s` )

     INNER JOIN (select max(`s2`.`Score`) as maxScore, `s2`.`id`
                 from `METAGENO`.`SITE` `s2`
                 group by `s2`.`id`) maxScore
     ON  s.Score = maxScore.Score
         AND os.site = maxScore.id

    where(
          (`o` .`id`     = `g` .`Operon`)
       and(`os`.`operon` = `o` .`id`    )
       and(`s` .`id`     = `os`.`site`  ))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11266827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档