指定されたデータベース・スキーマ: [テーブルの主キーは太字で記載されている) アカウント(ACCOUNT_NO、BRANCH_NAME、バランス) 預金(CUSTOMER_NAME 、ACCOUNT_NUMBER){キーがここに述べられていなかった} 顧客(CUSTOMER_NAME、customer_street、customer_city)数(個別のdepositor.account_number)の使用が違いを生むだろう、ここ
ためのSQLクエリを記述するために必要な質問 - ハリソンに住んでいるし、少なくとも3つのアカウントを持っている顧客ごとに平均残高を探します。
私は次のSQLクエリを書いた:
select depositor.customer_name,avg(balance)
from depositor,account,customer
where depositor.account_number=account.account_number and
depositor.customer_name=customer.customer_name and
customer_city='Harrison'
group by depositor.customer_name
having count(depositor.account_number) >=3
私の教科書のように、クエリの言及:
select depositor.customer_name,avg(balance)
from depositor,account,customer
where depositor.account_number=account.account_number and
depositor.customer_name=customer.customer_name and
customer_city='Harrison'
group by depositor.customer_name
having count(distinct depositor.account_number) >=3
でしょうが、ここで明確な配置は、結果の変化につながりますか? 私の分析によると、結果の関係(預託者アカウントの顧客)のクロス積は customer_name account_numberというように候補キーを持つので、ここでは別の値は追加されません。
あなたの教科書が 'FROM'節でカンマを使用していると、私は別のテキストブックを手に入れます。 –
@GordonLinoff謝罪しますが、そうです。 Silberschatz、Korth、Sudarshanによるデータベースシステムコンセプトです。 –
カンマは完全な外部結合を意味します。なぜなら、INNER結合のように動作させるためのWHERE条件があるからです。 – Vashi