ある月の“月末商品在庫”表と“当月商品出荷実績”表を使って、ビュー“商品別出荷実績”を定義した。このビューにSQL文を実行した結果の値はどれか。 [ビュー“商品別出荷実績”の定義] CREATE VIEW 商品別出荷実績(商品コード, 出荷実績数, 月末在庫数) AS SELECT 月末商品在庫.商品コード, SUM(出荷数), 在庫数 FROM 月末商品在庫 LEFT OUTER JOIN 当月商品出荷実績 ON 月末商品在庫.商品コード = 当月商品出荷実績.商品コード GROUP BY 月末商品在庫.商品コード, 在庫数 [SQL文] SELECT SUM(月末在庫数)AS 出荷商品在庫合計 FROM 商品別出荷実績 WHERE 出荷実績数 <= 300
NULLは比較で真にならず、WHERE句の対象から外れる
月末商品在庫
当月商品出荷実績
| 商品コード | 商品名 | 在庫数 |
|---|---|---|
| S001 | A | 100 |
| S002 | B | 250 |
| S003 | C | 300 |
| S004 | D | 450 |
| S005 | E | 200 |
| 商品コード | 商品出荷日 | 出荷数 |
|---|---|---|
| S001 | 2021-03-01 | 50 |
| S003 | 2021-03-05 | 150 |
| S001 | 2021-03-10 | 100 |
| S005 | 2021-03-15 | 100 |
| S005 | 2021-03-20 | 250 |
| S003 | 2021-03-25 | 150 |
選択肢
- ア400
- イ500
- ウ600
- エ700
正解と解説
正解:ア 400
ビューは外部結合と集約により、商品コードごとの出荷数合計と在庫数を返す。出荷実績のないS002とS004は合計がNULLとなり、WHERE句の比較で真とならず除外される。条件を満たすのは合計150のS001(在庫100)と合計300のS003(在庫300)で、在庫数の合計は400となる。
選択肢ごとの解説
- ア正しい。条件を満たすS001とS003の在庫数を足して100+300=400となる。
- イ500は出荷実績のない商品のNULL行を誤って含めた場合の値である。
- ウ600は集約前の行を重複して数えた場合などの誤りである。
- エ700は条件に合わない商品まで加えた場合の値である。
同じ分野の他の問題
- トランザクションの隔離性水準を高めたとき,不整合なデータを読み込むトランザクション数と,単位時間に処理できるトランザクシ…2025年度 春期 午前II 問24
- コードの値からデータの対象物が連想できるコード体系はどれか。2025年度 春期 午前II 問23
- 協調フィルタリングを用いた,商品のレコメンデーションの例はどれか。2025年度 春期 午前II 問15
- 大量のデータを並列に処理するために,入力データから中間キーと値との組みを生成する処理と,同じ中間キーをもつ値を加工する処…2025年度 春期 午前II 問4
- DBMS において、デッドロックを検出するために使われるデータ構造はどれか。2024年度 春期 午前II 問24
最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。