私は、ある値がある列に現れる平均回数を調べ、別の列に基づいてそれをグループ化し、その上で計算を実行しようとしています。SQL AVG(COUNT(*))?
私は基本的に、私はローンのテーブルに平均回数よりも少ない回数を表示されるすべてのコピーIDを見つけるために、少しこのような3つのテーブルDVD
ID | NAME
1 | 1
2 | 1
3 | 2
4 | 3
COPY
ID | DVDID
1 | 1
2 | 1
3 | 2
4 | 3
5 | 1
LOAN
ID | DVDID | COPYID
1 | 1 | 1
2 | 1 | 2
3 | 2 | 3
4 | 3 | 4
5 | 1 | 5
6 | 1 | 5
7 | 1 | 5
8 | 1 | 2
など
をしようとしている
そのDVDのすべてのコピーについて。
上記の例では、DVD1のコピー5が3回、コピー2が2回、コピー1が1回となるため、そのDVDの平均は2です。そのDVDのコピーをすべてリストしたいローンテーブルにその番号よりも少ない数字が表示されます。私はもう少し理にかなって願っています
...
おかげ
これは、Oracleで動作するはず
したがって、どの結果データセットを返す必要がありますか? DVDID = 1の場合は2、それ以外の場合は1を出力する必要がありますか? –
...「値が列に表示される平均回数」というのは意味をなさないためです。表示される回数は、表示される回数です。 1つの値を平均することはできません。 –
申し訳ありませんが、私は半分眠っています!私は、各DVDのコピーがLoanテーブルに表示される平均回数を見たいと思っていました。 –