電子書籍の厳選無料作品が豊富!

はじめまして。昨日今日Oracleの世界に足を踏み入れたくらいの初心者で、javarowaと申します。

さっそく質問なのですが、たとえばTest1とTest2という表があり、Test1にはcustomer codeと
shop codeの二つの列、Test2にはshop codeとshop nameという二つの列があるとします。ここで主キーは
Test1はcustomer codeとshop codeの組み合わせ、Test2はshop codeです。この場合、select文で
shop code, shop name, およびshop codeごとのcustomer codeの数、という三つの情報を得るには
どのようにすればよいでしょうか(引っ張った情報はshop codeの昇順でソートします)。shop codeごとのcustomer codeは

select distinct shop code, count(customer code) from Test1 group by shop code order by shop code

で、また、shop codeに紐づくshop nameは

select distinct shop code, shop name from Test1 natural join Test2 order by shop code

で、それぞれ出ると思うのですが、この二つを同時に表すにはどうすればよいのかが分かりません。
(あるいはnatural joinだとダメなのでしょうか。そのあたりからしてあやふやです…)
非常に初歩的な質問で恐縮ですが、どなたかお教え願えないでしょうか。

A 回答 (1件)

こういうことでしょうか?



select
T2.shopcode,
T2.shopname,
COUNT(T1.customercode)
from
Test1 T1 inner join Test2 T2 on T1.shopcode = T2.shopcode
group by
T2.shopcode,
T2.shopname
order by
shopcode
    • good
    • 0
この回答へのお礼

回答ありがとうございます!
そしてまた質問で恐縮なのですが、このgroup by句以下の解釈は
どのようになるのでしょうか。カウントするためにshopcodeで
グルーピングするのは分かるのですが、その次の管理会社名も
groub byされているのはなぜですか?
もしよろしければお願いします。

お礼日時:2008/06/09 08:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!