Accessでランキングを作成する方法~OracleのRANKを使いたい

Accessでランキングを表示する方法について解説する。OracleのRANKのようなランキングのリストを作成したい場合に使用できる。 

Accessでランキングを表示したい場合の構文 

[項目名]:(Select Count(*) from [テーブル名] Where [ランキング対象項目] < [クエリ内のランキング対象項目] 

Accessでランキングを表示したい場合の例

例では、人事台帳の入社年月日順にランキングを付けてみる。SQLビューで実施する。

SELECT (Select Count(*) from 人事台帳 Where [入社年月日] < [Emp].[入社年月日])+1 AS RANK
     , Emp.社員コード
     , Emp.社員名
     , Emp.入社年月日
FROM   人事台帳 AS Emp;

デザインビューで見ると下記のようになる。

デザインビューで見ると下記のようになる。

例のクエリの解説

下記にSQLの解説をする

FROM   人事台帳 AS Emp;

参照する人事台帳を”EMP”に改名して全件表示している。

(Select Count(*) from 人事台帳 Where [入社年月日] < [Emp].[入社年月日])+1 AS RANK

カッコ内でSELECT文で副問合せをしており、これが1行ずつ実行される。実行されるときの条件がその行の入社年月日である。その行の入社年月日以前の社員のカウントを取っている。

注意点

注意点としては、件数が多いほど応答時間が遅くなっていく。

処理的には1件ずつ、カウント集計処理が実行されているため、件数が多いほど実行される件数も増えるため、応答時間が遅くなる。 

コメント

タイトルとURLをコピーしました