レス
元トピ次レス
タイトル
Re: 問題ID:19926について
フォーラム
最強WEB問題集Oracle Master 12c Bronze SQL基礎
投稿ユーザ(投稿日)
(2020/7/14)
本文

-----引用(始)-----

ここで求めたいのは「TIME_ID列(売れた日)」がそれぞれのプロモーションの開始日〜終了日の間になっていれば抽出対象データという理解をしております。
とすると正しいSQLを実施した際に以下の4つのデータが抽出対象から消えるのですが、「TIME_ID列(売れた日)」は開始日〜終了日の間の日付となっているのに抽出対象外になった理由がわかりません。

-----引用(終)-----

うーん、問題文の意図を私が誤読していなければ、という前提ですが。

Kazumi94 さんの想定される「「TIME_ID列(売れた日)」がそれぞれのプロモーションの開始日〜終了日の間になっていれば抽出対象データ」はたしかに大事なポイントではあるのですが、「プロモーション対象商品かどうか」という観点が抜けているのではないかと思います。
「抽出対象外になった理由がわからない」のは「期間」だけで考えているからであって「この期間に売れたということはこのプロモーションにヒットしているはず」という前提に立っている、ということになるかと思います。

現実世界の例で言えば
・7/13の週は「ガソリン10円引き」セールをしている
・7/15に「灯油」が売れた
・では「灯油」は「ガソリン10円引き」セールの商品として抽出されるのが正しいか?
ということですね。

設問のSALES3表には「PROMO_ID」があるので、PROMOTIONS表と結合するべき列はTIMEではなくPROMO_IDだと判断するのが妥当だということになるかと思います。そういう意味で、「PROMO_ID」で結合していないので抽出される行が正しくない、という答えが導き出されるのだと思います。

レス一覧

元トピ次レス


Ping-tモバイルTOP

Copyright (c) 2010
Ping-t All rights reserved.