以下のSQL ServerのNTILE関数を使用していくつかの結果を四分円に分割しているシナリオがあります。目標は、結果表を以下に示すと4級グループA、B間(9,9,8,8)の分割があるれるSQL Server NTILE - 異なる四分位数の同じ値
case NTILE(4) over (order by t2.TotalStd)
when 1 then 'A' when 2 then 'B' when 3 then 'C' else 'D' end as Class
各クラス内の行として同じ数を有することですCとD
問題を引き起こす2つの結果がありますが、両方の行の合計のstd値は30ですが、異なる四分位数に割り当てられています。
8 30 A
2 30 B
同じ値を持つ行が同じ四分位に割り当てられていることを確認する方法はありますか?この現象を起こすために別の列でグループ分けするかパーティション分けすることはできますか?
Pos TotalStd class
1 16 A
2 23 A
3 21 A
4 29 A
5 25 A
6 26 A
7 28 A
8 30 A
9 29 A
1 31 B
2 30 B
3 32 B
4 32 B
5 34 B
6 32 B
7 34 B
8 32 B
9 33 B
1 36 C
2 35 C
3 35 C
4 35 C
5 40 C
6 38 C
7 41 C
8 43 C
1 43 D
2 48 D
3 45 D
4 47 D
5 44 D
6 48 D
7 46 D
8 57 D
これはどのように 'である私は、一時テーブル内のカットオフポイントを決定するために
NTILE
を使用してそれを行うことができますNTILE'は動作しますが、あなたのベースがすべて同じTotalStdを持っていて四分円をやりたいのであればどうなりますか?とにかく4つの異なるグループに値を分割します – Lamak