0

上から始めて、テーブルから選択されたポイントの数を減らして結合する必要がある一連のデータベース テーブルがあります。しかし、最後のステップで、大きなテーブルのポイント数を満たすために、最後のテーブルを拡張する必要があります。これが例です

アナライト

Analyte_Index、Analyte_Name ... 1、「dCMP」

検体フォルダ

Analyte_Index , Folder_Index ...
 1            ,  1

フォルダ

Folder_Index, Folder_Path ...
 1          , 'c:\temp'

ファイル

File_Index, Folder_Index, File_Name ...
1         ,  1          , 'test.dat'

ピーク

Peak_Index, File_Index, Folder_Index, Cluster_Index ...
1         , 1         , 1           , 1
2         , 1         , 1           , 1
3         , 1         , 1           , 2
4         , 1         , 1           , 3
5         , 1         , 1           , 3
6         , 1         , 1           , 4

クラスター

Cluster_Index ...
1
2
3

ピーク テーブルにはテーブルの大きなチャンクがあり、クラスターには多くのピークを含めることができます。したがって、他のすべてのテーブルは、ピーク テーブルから選択されるポイントの数を減らします。これは非常にうまく機能します。選択後、クラスターに結合を含めない場合、最大 9,000,000 ポイントになります。

これが私のクエリです

select  peaks.Peak_Index, peaks.Cluster_Index, peaks.P_maxAmplitude, peaks.P_averageAmplitude, clusters.C_averageAmplitude
from peaks
join files
  on files.File_Index = peaks.File_Index
join folders
  on folders.Folder_Index = files.Folder_Index
join analytefolders
  on analytefolders.Folder_Index = folders.Folder_Index
join analytes
  on analytes.Analyte_Index = analytefolders.Analyte_Index
join clusters
  on clusters.Cluster_Index=peaks.Peak_Index

where analytes.Analyte_Name='dCMP' 

クラスターの結合により、返される行数は ~1,000,000 (クラスター数) に減少します。ピークの数に一致するようにクラスターからのデータを拡張するために必要なもの。考えられるすべての結合を試し、結合の順序を変更しましたが、これは私の限られた SQL スキルを超えています。

4

1 に答える 1

1

あなたの最後の参加はon clusters.Cluster_Index=peaks.Cluster_Index

于 2013-08-21T20:53:28.850 に答える