Re: 問題ID:19926について
arashi1977
居住地: 広島
投稿数: 1715
引用:うーん、問題文の意図を私が誤読していなければ、という前提ですが。
Kazumi94 さんの想定される「「TIME_ID列(売れた日)」がそれぞれのプロモーションの開始日〜終了日の間になっていれば抽出対象データ」はたしかに大事なポイントではあるのですが、「プロモーション対象商品かどうか」という観点が抜けているのではないかと思います。
「抽出対象外になった理由がわからない」のは「期間」だけで考えているからであって「この期間に売れたということはこのプロモーションにヒットしているはず」という前提に立っている、ということになるかと思います。
現実世界の例で言えば
・7/13の週は「ガソリン10円引き」セールをしている
・7/15に「灯油」が売れた
・では「灯油」は「ガソリン10円引き」セールの商品として抽出されるのが正しいか?
ということですね。
設問のSALES3表には「PROMO_ID」があるので、PROMOTIONS表と結合するべき列はTIMEではなくPROMO_IDだと判断するのが妥当だということになるかと思います。そういう意味で、「PROMO_ID」で結合していないので抽出される行が正しくない、という答えが導き出されるのだと思います。
ここで求めたいのは「TIME_ID列(売れた日)」がそれぞれのプロモーションの開始日〜終了日の間になっていれば抽出対象データという理解をしております。
とすると正しいSQLを実施した際に以下の4つのデータが抽出対象から消えるのですが、「TIME_ID列(売れた日)」は開始日〜終了日の間の日付となっているのに抽出対象外になった理由がわかりません。
Kazumi94 さんの想定される「「TIME_ID列(売れた日)」がそれぞれのプロモーションの開始日〜終了日の間になっていれば抽出対象データ」はたしかに大事なポイントではあるのですが、「プロモーション対象商品かどうか」という観点が抜けているのではないかと思います。
「抽出対象外になった理由がわからない」のは「期間」だけで考えているからであって「この期間に売れたということはこのプロモーションにヒットしているはず」という前提に立っている、ということになるかと思います。
現実世界の例で言えば
・7/13の週は「ガソリン10円引き」セールをしている
・7/15に「灯油」が売れた
・では「灯油」は「ガソリン10円引き」セールの商品として抽出されるのが正しいか?
ということですね。
設問のSALES3表には「PROMO_ID」があるので、PROMOTIONS表と結合するべき列はTIMEではなくPROMO_IDだと判断するのが妥当だということになるかと思います。そういう意味で、「PROMO_ID」で結合していないので抽出される行が正しくない、という答えが導き出されるのだと思います。
投稿ツリー
-
問題ID:19926について
(Kazumi94, 2020-7-14 15:13)
- Re: 問題ID:19926について (arashi1977, 2020-7-14 19:50)
- Re: 問題ID:19926について (Kazumi94, 2020-7-15 11:36)