SQL Server 2008 でスコアのリストから要約を生成しようとして
います。2 つのテーブルがあります: SQL Fiddle リンク
テーブルには、ScorePerson
人の ID と -5 から 15 までのスコアが含まれています。SQL/ストアド プロシージャのエンド ユーザーは、次のような要約を作成する必要があります。
Scoreband| TotalNoOfPeople | AvgScore
--------------------------------
-5 to 0 | 2 | -2
0 to 5 | 3 | 2
5 to 10 | 2 | 8
10 to 15 | 3 | 13.3
スコア バンド、つまり最小値と最大値はScoreMinMax
、エンド ユーザーがテーブルから構成できる必要があります。
CASE ステムを使用してこれを実現しようとしましたが、サマリーが列として生成されます。II はおそらくそれをピボットするか、複数の選択ステートメントから UNION を使用する必要があります。ScoreMinMax
ただし、テーブルに新しい行が追加された場合、このアプローチはスケーラブルではないようです。これまでのところ、CROSS JOINT を使用して上記の例と同様の結果を得ることができましたが、常に正しい結果が得られるとは限りません。
これを達成する方法について誰かが私を正しい方向に向けることができますか?
ScorePerson - contains actual scores
ScoreMinMax - the configuration for min and max score bands