こんにちわ。
OUTER JOINを使ったSQL文について質問させてください。
今3つのテーブル(EMPLOYEES, CUSTOMERS, ZIPCODES)があるとします。郵便番号ごとに従業員とお客さんのIDを表示するSQLはわかるのですが(下に書きます)、郵便番号ごとに従業員とお客さんの数を表示するSQL文がわからず、途方に暮れてます。どなたか教えていただけないでしょうか? よろしくお願いいたします。
郵便番号ごとに従業員とお客さんのID
SQL> select z.zip, e.eno, c.cno from zipcodes z full outer join employees e
on (z.zip=e.zip) full outer join customers c on (z.zip=c.zip);
ZIP ENO CNO
---------- ---------- ----------
49008 1001 1111
49009 2222
49001 1000 3333
49017 1002
49023
49024
それをこうしたいのですが・・
ZIP ENUM CNUM
---------- ---------- ----------
49008 1 1
49009 1
49001 1 1
49017 1
49023
49024
No.2ベストアンサー
- 回答日時:
データの関係性がイマイチ理解できないのですが・・
投稿内容通りに、SQLを素直に書き直すと、
select
z.zip,
count(e.eno) enum,
count(c.cno) cnum
from zipcodes z
full outer join employees e on (z.zip=e.zip)
full outer join customers c on (z.zip=c.zip)
group by z.zip
;
No.1
- 回答日時:
こんなんでできそうな気がしますが、どうでしょう?
こちらに環境がありませんので試していません。
もしも、期待されている結果と違う場合はお手数ですが補足をお願いいたします。
select z.zip, nvl(e.e_cnt, 0) e_cnt, nvl(c.c_cnt, 0) c_cnt
from zipcodes z
full outer join (select count(*) e_cnt, zip from employees group by zip) e
on (z.zip=e.zip)
full outer join (select count(*) c_cnt, zip from customers group by zip) c
on (z.zip=c.zip);
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle 下記のsqlで取得されるレコード以外を取得する方法ありますでしょうか。 SELECT B.番号, B 2 2022/04/20 23:21
- Google Maps 郵便番号を Google マップで調べる方法を教えてください 環境としては 日本に滞在して間もない 3 2022/03/23 12:25
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- MySQL PhpMyAdminで作成して実行せよ。 東京23区を、皇居を中心とした4つのエリア(南東, 南西, 1 2023/06/11 11:58
- Access(アクセス) アクセス 削除するレコードを含んだテーブルを指定してくださいのエラー対処方法 1 2022/11/24 15:01
- PostgreSQL SQLで検索結果の記事を表示したい 1 2022/04/28 21:03
- PostgreSQL 画像とカテゴリーを出力したいのですが、取得の条件を付ける方法がわかりません。 2 2022/05/01 18:03
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- 情報・ワイドショー 情報番組のニュースコーナー 1 2022/04/22 07:59
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
selectの単純繰り返し
-
RANK関数で順位付けする方法
-
SELECT文の結果をDEFINEの値と...
-
SELECT文発行後の結果をテキス...
-
【SQL】他テーブルに含まれる値...
-
フラグをたてるってどういうこ...
-
SELECT INTOで一度に複数の変数...
-
SQLサーバに対するSQL文で抽出...
-
sqlに記述できない文字
-
CSVファイルを読み込んでテーブ...
-
SQLで、Join句で結合したテ...
-
UPDATEで既存のレコードに文字...
-
既存データをINSERT文にして出...
-
'modify' 付近に不適切な構文が...
-
結合したテーブルをSUMしたい
-
timestampのデータはどのように...
-
データベース ユーザの「このユ...
-
エラーを起こす方法
-
同一テーブル内での比較(最新...
-
オラクルのUPDATEで複数テーブル
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLをExcelで書いている人を良...
-
selectの単純繰り返し
-
SELECT文の結果をDEFINEの値と...
-
SQL Server:UNIONで結合した結...
-
ExcelVBAで複数のコマンドボタ...
-
oracle シーケンスの欠番を確認...
-
ストアドプロシージャが作成さ...
-
詳細設計書でselect文の導き方
-
SELECT文発行後の結果をテキス...
-
OUTER JOINについて
-
SQLのIF文
-
SQL WHERE文のノットイコール...
-
【SQL】他テーブルに含まれる値...
-
フラグをたてるってどういうこ...
-
SELECT INTOで一度に複数の変数...
-
sqlに記述できない文字
-
UPDATEで既存のレコードに文字...
-
truncate tableを使って複数の...
-
PostgreSQLのtimestamp型で時間...
-
オラクルのUPDATEで複数テーブル
おすすめ情報
