ORACLE MASTER Silver SQL 26ai結合件数と副問合せの条件オリジナル・公式資料照合難易度
受注1件に明細が2行、支払が3行ある。受注へ両方を受注IDで直接結合し、明細金額をSUMすると重複加算された。改善として適切なのはどれか。
A
SUM(DISTINCT 明細金額)なら、同額の別明細も必ず正しく合計できる
同額の異なる明細まで一つにまとめるため、一般の正しい合計にはならない。
B
明細と支払をそれぞれ受注ID単位へ先に集計して結合する★ 正解
二つの一対多による行の増幅を避ける。
C
二つの子表への内部結合をLEFT JOINへ変えるだけで、行の組合せ増加はなくなる
外部結合へ変えるだけでは、それぞれ複数一致することによる増幅は解消しない。
D
最終SELECTにDISTINCTを付ければ、SUMに入る前の明細重複も必ずなくなる
SELECTのDISTINCTは既に行われた集計の入力の重複加算を修正しない。
解説
独立する一対多を同時結合すると明細と支払の組が増える。各子表を受注ID単位へ先に集計してから結合すると、必要な粒度を保ちやすい。
根拠資料・確認情報
対応範囲:ORACLE MASTER Silver SQL 26ai(1Z0-171-JPN)
資料確認日:2026-11-02
アプリ内の初回回答データ
回答データを読み込んでいます。