1

このSQL選択ステートメントを作成する方法がわかりません...ここに私のテーブルがあります:

ここに画像の説明を入力

リクエストに関連するテーブルを開きました

だから基本的I want to select the number of albums for each interpret. に私はそれを理解することはできません...私は現在、次のようなアルバムで最初の選択を行う必要があると考えています:

select interpret.no_interpret, count(*)
from album
.
.
.
group by interpret.no_interpret;

これから作業がありますが、次にどこに行くべきかわかりません。

4

2 に答える 2

1

私は何かが欠けているかもしれませんが、あなたの歌のテーブルからアルバムへの直接的な関係は見られません...

最初に、link_interpret_song テーブルを song テーブルに結合して、個別のアルバムの数を取得することから始めます。ただし、song テーブルのフィールド リストに「No_Album」列と思われるものが表示されませんでした。特定のアルバムに関連付けられているとしか思えません。私はメディアを見ましたが、私にとっては、メディアのタイプ (デジタル、ダウンロード、ビニール、CD) とアルバム テーブルに表示される実際の ID キーのようなものです。

そうは言っても、SONG テーブルにそのような「No_Album」列があると考えています。

select
      LIS.No_Interpret,
      COUNT( DISTINCT S.No_Album )
   from
      Link_Interpret_Song LIS
         JOIN Song S
            on LIS.No_Song = S.No_Song
   group by
      LIS.No_Interpret;

とはいえ、解釈の詳細が必要な場合は、上記の結果を取得して解釈テーブルに結合します。count() と count(distinct) コンテキストの例として、個別のアルバム数と合計曲数の両方を実行しました...次のように

select
      PreCounts.No_Interpret,
      PreCounts.DistinctAlbums,
      PreCounts.ActualSongs,
      I.Name_Interpret,
      I.First_Name,
      I.Stage_Name
   from
      ( select
              LIS.No_Interpret,
              COUNT( DISTINCT S.No_Album ) as DistinctAlbums,
              COUNT(*) as ActualSongs
           from
              Link_Interpret_Song LIS
                 JOIN Song S
                    on LIS.No_Song = S.No_Song
           group by
              LIS.No_Interpret ) as PreCounts
      JOIN Interpret I
         ON PreCounts.No_Interpret = I.No_Interpret
于 2013-04-11T03:14:35.387 に答える