2

最近受けた面接の質問で悩んでいます。3 つのディメンション テーブル (Product、Store、Date) と 1 つのファクト テーブル (Sales)。この質問では、過去 1 か月間、1 日あたり、店舗ごとに販売されなかった製品の数を返す T-SQL ソリューションが求められました。

その船は出航しました...機会は過ぎましたが、解決策に戻るためにかなりの時間を費やしましたが、役に立たず、ループを閉じたいと思います. どんなガイダンスも大歓迎です。

4

3 に答える 3

2

通常、「何が起こらなかったか」は、カバレッジ テーブルを使用して回答されます。これは、ファクトレス ファクト テーブルを使用して否定的な分析を行うことについて知っているかどうかを確認するための「トリック」の質問であった可能性があります。

このテーブルは 1 つの行 / 日 / 製品 / 店舗であり、特定の日に特定の店舗で入手可能なすべての製品を識別します。次に、そのテーブルを使用して、販売実績から販売した製品を差し引いて、販売しなかった製品を取得します。

すべての商品がすべての店舗で販売されているわけではないため、必ずしも商品薄暗いに参加しても意味がありません。必要な SQL を構築できるかどうかを確認するための単なる質問でしたが、一般的には不適切な質問だと思います。

于 2012-12-11T14:46:28.100 に答える
1

これを試して:

  1. 商品、店舗、日付をクロス結合し、過去 1 か月をフィルターします
  2. アンチ結合 (1) をファクト テーブルに追加し、残っているものを予測し、店舗と日付で集計します。

他の人にとって不公平になる可能性があります。

于 2012-12-11T05:28:00.537 に答える