0

テーブルPROBEは次のようになります。

'ProbeID'----- 'TranscriptID' ---- 'Start'---- 'End'

'1056'-----------'7981326'----------'1013'---'1010'

'1057'-----------'7878826'----------'1011'---'1015'

etc..

テーブルEXPRESSION2は次のようになります。

'ProbeID'----- 'SampleID' ---- 'Value'

'10425'---------'7981326'-----'16.55''

'11123'---------'7878826'----- '3.55'

etc..

トランスクリプトの上位100の最大の違いを見つける必要があります(つまり、プローブの平均を取る)。

基本的に、EXPRESSION2テーブルのProbeIDをPROBEテーブルのTranscriptIDにリンクし、上位100の平均を計算する必要があります。

以下のコードを試しましたが、「null」が返され続けます。代替スクリプトは大歓迎です。私は何かが欠けていると思います。

EXPRESSION2テーブルにnull値はありません、fyi

`select avg(value)

expression2から

    where probeID in  
                    (   
                      select P.ProbeId 
                           from Probe P
                            join Transcript T on P.TranscriptID = T.TranscriptID

)`

制限100;`

4

2 に答える 2

0

null値を削除したい場合

select e.probeID, avg(value) as avarage
from expression2 e
    inner join 
    (
        select P.ProbeId 
        from Probe P 
            join Transcript T on P.TranscriptID = T.TranscriptID    
    ) p on e.probeID = p.probeID
where e.value is not null
group by e.probeID

それらを0として扱いたい場合

select e.probeID, avg(COALESCE(value,0)) as avarage
from expression2 e
    inner join 
    (
        select P.ProbeId 
        from Probe P 
            join Transcript T on P.TranscriptID = T.TranscriptID    
    ) p on e.probeID = p.probeID
group by e.probeID
于 2012-10-30T00:08:17.070 に答える
0

どのDBMSを使用していますか?例の2つのテーブルに一致するProbeIDがないが、一致するTranscriptID / SampleIDのペアがあることは重要ですか?

Select Top 100
  p.TranscriptID,
  Avg(e.Value)
From
  Probe p
    Inner Join
  Expression2 e
     on p.ProbeID = e.ProbeID
Group By
  p.TranscriptID
Order By
  2 Desc
于 2012-10-30T00:10:17.730 に答える