
第 4 章 OLAP の使用
Samuels | 37400.000 | M | 19 |
Singer | 34892.000 | M | 20 |
Chao | 33890.000 | M | 21 |
ランク付けの例 3 この例では、カリフォルニアおよびテキサスの女性従業員を 取得し、給与を基準として降順にランク付けしています。累積和を降順で示す ために、PERCENT_RANK 関数を使用しています。
SELECT emp_lname, salary, sex, CAST(PERCENT_RANK() OVER (ORDER BY salary DESC) AS numeric (4, 2)) AS RANK
FROM employee WHERE state IN ('CA', 'TX') AND sex ='F' ORDER BY salary DESC;
このクエリの結果セットを次に示します。
emp_lname | salary | sex | percent |
Savarino | 72300.000 | F | 0.00 |
Smith | 51411.000 | F | 0.33 |
Clark | 45000.000 | F | 0.66 |
Garcia | 39800.000 | F | 1.00 |
ランク付けの例 4 PERCENT_RANK 関数を使用して、データ・セットにおけ る上位または下位のパーセンタイルを調べることができます。この例のクエリ は、給与の額がデータ・セットの上位 5% に入る男性従業員を返します。
SELECT * FROM (SELECT emp_lname, salary, sex, CAST(PERCENT_RANK() OVER (ORDER BY salary DESC) as numeric
(4, 2)) AS percent
FROM employee WHERE state IN ('MA') AND sex ='F' ) AS DT where percent > 0.5
ORDER BY salary DESC;
このクエリの結果セットを次に示します。
emp_lname | salary | sex | percent |
Whitney | 45700.000 | F | 0.51 |
Barletta | 45450.000 | F | 0.55 |
Higgins | 43700.000 | F | 0.59 |
Siperstein | 39875.500 | F | 0.62 |
Coe | 36500.000 | F | 0.66 |
Espinoza | 36490.000 | F | 0.70 |
Wetherby | 35745.000 | F | 0.74 |
Braun | 34300.000 | F | 0.77 |
Butterfield | 34011.000 | F | 0.81 |
Bigelow | 31200.000 | F | 0.85 |
Bertrand | 29800.000 | F | 0.88 |
Lambert | 29384.000 | F | 0.92 |
Kuo | 28200.000 | F | 0.96 |
Romero | 27500.000 | F | 1.00 |
パフォーマンス&チューニング・ガイド | 79 |