Sybase 12.7 Home Theater System User Manual


 
統計関数
76 Sybase IQ
これは次の指定に相当します。
( COUNT (*) OVER ( ws RANGE UNBOUNDED PRECEDING )
- COUNT (*) OVER ( ws RANGE CURRENT ROW ) + 1 )
この RANK 関数の変換では、論理的な集合 (RANGE) を使用しています。この
結果、同位のロー ( 順序付けカラムに同じ値が含まれているロー ) が複数ある
場合は、それらに同じランクが割り当てられます。パーティション内で異なる
値を持つ次のグループには、同位のローのランクよりも 1 以上大きいランクが
割り当てられます。たとえば、順序付けカラムに 1020202030 という値
を含むローがある場合、1 つ目のローのランクは 1 になり、2 つ目のローのラン
クは 2 になります。3 つ目と 4 つ目のローのランクも 2 になりますが、5 つ目の
ローのランクは 5 になります。ランクが 3 または 4 のローは存在しません。こ
のアルゴリズムは非連続型ランキング (sparse ranking) とも呼ばれます。
Sybase IQ リファレンス・マニュアル』の「第 5 SQL 関数」RANK
[ 統計 ]も参照してください。
DENSE_RANK() 関数
RANK 関数は同位のローがあるときに重複したランク値を割り当て非連続的
なランキングを返しますが、DENSE_RANK 関数は抜けのないランキングを返
します。同位のローに対しては同じように等しいランク値が割り当てられます
が、このローのランクは、個々のローの順位ではなく、順序付けカラムに等し
い値を含んでいるローの集まりの順位を表しています。RANK の例と同様に、
順序付けカラムに 1020202030 という値を含むローがある場合、1
目のローのランクは同じく 1 となり、2 つ目のローおよび 3 つ目、4 つ目のロー
のランクも同じく 2 となります。しかし、最後のローのランクは 5 ではなく 3
になります。
DENSE_RANK も、構文変換を通じて計算されます。
DENSE_RANK() OVER ws
これは次の指定に相当します。
COUNT ( DISTINCT ROW ( expr_1, . . ., expr_n ) )
OVER ( ws RANGE UNBOUNDED PRECEDING )
この例では、expr_1 から expr_n の部分が、ウィンドウ w1 のソート指定リスト
に含まれている値の式のリストを表しています。
Sybase IQ リファレンス・マニュアル』「第 5 SQL 関数」DENSE_RANK
関数 [ 統計 ]も参照してください。