これらは私のテーブルです:O、PおよびV注文に対応し、人と村クエリに自動的にエントリのないレコードを除く
vは村に対応
vk | vname
1 | v1
2 | v2
3 | v3
pは村の人に対応しています。 AとBはV1にあります。 CはV2に住んでいます。
pk | pname | vk
1 | A | 1
2 | B | 1
3 | C | 2
oは、人が発注する注文に相当します。 V1からの人物Aは3つの注文を出し、V2からの人物Cは1つの注文を出しました。
ok | pk | cost
1 | 1 | 10
2 | 1 | 100
3 | 1 | 20
4 | 3 | 200
私は村の1人あたりの平均注文数を調べようとしています。
私はクエリを作成しましたが、何も注文していない村の人々の結果は除外しています。
マイクエリ:私が欲しいもの
SELECT
v.vname,
count(ok)/count(DISTINCT o.pk) AS avg
FROM
v,
o,
p
WHERE
p.pk = o.pk
AND p.vk = v.vk
GROUP BY
v.vk;
:
vname | avg
v1 | 3
v2 | 2
それは何の受注が取られていないところから、第三の村を考慮していない:私は取得しています何
vname | avg
v1 | 1.5
v2 | 1
v3 | 0
場所はありますが、人はいませんが、私はそれを見せたいと思います。また、村1の人Bは発注していないため、村1の人Aからの注文のみが考慮される。 V1から人物2からV1及び0から人物Aから3桁で
、平均は3/2でなければならないが、それは他の人を除外とするような3
任意リードである3/1を示しますどこが間違っていて、どのようにしてクエリを完成させることができますか?
旧式のコンマ結合構文は使用しないでください。ジョインについては、その後、私たちに戻ります。 – Strawberry