最近、SQL Where ステートメント/グループ化に関する質問をここに投稿しました。
GROUP または RANK からの WHERE を使用する SQL ステートメント
今、私はいくつかのフォローアップを持っています。
前の質問と同様に、次の列を含む 35,000 行のテーブルがあるとします。
営業担当 | 親アカウント ID| アカウント ID | 総契約額 | 日にち
各行はアカウント ID ごとに個別ですが、複数のアカウント ID が親アカウント ID に該当する場合があります。
最初の質問の回答と同様に、これはおそらくテーブル w/ia テーブルになるでしょう。最初に、すべてを営業担当者別にグループ化する必要があります。それから、すべてのアカウントのグループ化された合計契約値が >= 10,000 である親アカウント ID ですべてをグループ化する必要があります。次に、すべてが表示され、親アカウント ID の合計 TCV によってランク付けされます。エージェントごとに上位 35 の親アカウント ID が必要です。
したがって、データの最初の数行は次のようになります。
営業担当 | 親アカウント ID| アカウント ID | 総契約額 | 日付 | ランク ジョン・ドウ | 親ABC12345 | ABC425 | 5,000 | 2013 年 1 月 2 日 |1 ジョン・ドウ | 親ABC12345 | ABC426 | 10,000 | 2013 年 1 月 2 日 |1 ジョン・ドウ | 親DJE12345 | DJE523 | 11,000 | 2013 年 1 月 2 日 |2 ジョン・ドウ | 親FBC12345 | FBC6723 | 4,000 | 2013 年 1 月 2 日 |3 ジョン・ドウ | 親FBC12345 | FBC6727 | 4,000 | 2013 年 1 月 2 日 |3
親アカウント ID に基づいてランキングがどのように機能するかに注目してください。アカウント ID DJE523 は 1 つの最大の TCV を持っていますが、親アカウント ID ParentABC12345 のグループ化された値がより大きいため、2 番目にランク付けされています。したがって、35 の親アカウント ID のランキングがありますが、そのランキングでは実際のデータが 100 行以上になる可能性があります。
何かご意見は?