2016-11-30 5 views
3

私は)RATIO_TO_REPORTを(使用する従来のSQLクエリを持っている - それは、オープンアクセスのテーブルを使用しませんが、これは次のようにそれが見えるものです:私は、従来のSQLからの移行しようとしているBigQueryの標準SQLでRATIO_TO_REPORT()を実装する方法は?

SELECT 
    Mutation_AA, 
    Gene_name, 
    CaseCount, 
    RATIO_TO_REPORT(CaseCount) OVER (PARTITION BY Gene_name) AS ratio 
FROM (
    SELECT 
    COUNT(DISTINCT ID_tumour, 50000) AS CaseCount, 
    Mutation_AA, 
    Gene_name 
    FROM 
    [isb-cgc:COSMIC.grch38_v79] 
    GROUP BY 
    Mutation_AA, 
    Gene_name) 

標準SQL(BigQueryを使用する前にSQLを使用したことはありません)ので、ヒントをいただければ幸いです。 THX

答えて

3

ただ直接の比率を計算します。

SELECT Mutation_AA, 
     Gene_name, 
     CaseCount, 
     (CaseCount/SUM(CaseCount) OVER (PARTITION BY Gene_name)) AS ratio 
. . . 

あなたはサブクエリを必要としない:

SELECT Mutation_AA, Gene_name, 
     COUNT(DISTINCT ID_tumour, 50000) AS CaseCount, 
     COUNT(DISTINCT ID_tumour, 50000)/SUM(COUNT(DISTINCT ID_tumour, 50000)) OVER (PARTITION BY Gene_Name) as ratio 
FROM [isb-cgc:COSMIC.grch38_v79] 
GROUP BY Mutation_AA, Gene_name ; 
関連する問題