R2 PM1 問3 設問3(2)

いぬいちさん  
(No.1)
過去の質問をあさってみましたが見つからなかったので質問させてください。
表題の件、解答は性別、年代、小分類コードでしたが、担当社員IDは含まれないのでしょうか。
法人会員の場合、担当社員ID別に売り上げを集計したくなる可能性はないのでしょうか。
最少列数かつ最小行数とはなっていますが、そこの線引きの根拠が知りたい、と思いました。
2022.07.16 06:38
にゃんちゃんさん 
DB シルバーマイスター
(No.2)
集計用の新たなテーブル、いわゆるデータマートにどういう列を持たせるか?という問題ですね。

集計対象:表6の5種類だけができればよい
データマート名:サマリテーブル

「サマリテーブル」を作る前は、いろんなテーブルを結合して必要な列をかき集めてからGROUP BYする必要がありました。
それは集計のたびに結合が発生して、結果が表示されるまでの処理が重くなります。
あえて正規化していない「サマリテーブル」を作れば、集計に必要な列はそろってあるのでGROUP BYするだけで集計は終わります。
「サマリテーブル」は、例えば深夜に自動で更新させればいいですね。

で、必要な列とはなんぞや?ということですが
本問では、表6の集計ができる「最低限の列」ということなので
表6の「●●別」がすべて対象になります。
ただし、「最低限の列」ということなので
集計対象外の「担当社員ID」は含めません。

「法人会員の場合、担当社員ID別に売り上げを集計したくなる可能性はないのでしょうか。」
とのご質問ですが、可能性はあると思いますよ。
分析というか、社員ごとに実績を集計して報奨金を支給するとか。

なので実務では入れる気もします。
個人的には、実務なら「大分類ID」も持たせますね。
せっかく結合不要なデータマートを作ってるのに、「大分類別」だけは「小分類」テーブルから結合して集計する意味はよく分かりません(データサイズを減らすため?)。

ただ、あくまで本問は表6の集計ができる「最低限の列」なので
「担当社員ID」も「大分類コード」も不要ということです。
2022.07.16 08:44
いぬいちさん  
(No.3)
にゃんちゃんさん、解説ありがとうございます。
そうですね、「表6中のすべての分析」と問題文に書いてありますね。
見逃していました。
大変納得できました。ありがとうございました。
2022.07.16 17:23

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。

その他のスレッド


Pagetop