
応用情報技術者試験基礎・応用
条件を読む・根拠を説明する
外部結合後にゼロ件を数える
条件を整理し、答えを選んでから解き方を確認しましょう。
顧客Aに注文2件、Bに0件。顧客を左に外部結合し顧客別集約を行う。注文IDは実在する注文ではNOT NULL。Bの注文数を0とする式はどれか。
答え・解き方を読む
COUNT(注文ID)
図で見る
左の行を保って右の一致行を付ける
左外部結合では右に一致がない左行もNULLを伴って残ります。図のAの注文2件は結合の一般例。WHEREで右側条件を付けた後の行数やCOUNTの対象は各設問の実データで再評価します。
図は問題の関係を整理する模式図です。記号には各問題の数値を当てはめます。寸法・面積・時間の縮尺や、実施工の全条件は表していません。
考える順序
- 1Bも外部結合で1行残る
- 2Bの注文側のIDはNULLとなる
- 3NULLを数えないCOUNT(注文ID)なら0
選択肢ごとの理由
- 比較 · MAX(顧客ID)
最大識別子は注文件数ではありません。
- 正解 · COUNT(注文ID)
Bも外部結合で1行残る。Bの注文側のIDはNULLとなる。NULLを数えないCOUNT(注文ID)なら0。
- 比較 · COUNT(*)
COUNT(*)は残ったBの行を1と数えます。
- 比較 · SUM(顧客ID)
顧客識別子の合計は注文件数ではありません。