Oracle(10g)で、文字数(バイト数)毎のレコード数を取得するクエリに関するメモ。

前提:会員ユーザは、会員登録時に会員ID(必須:半角6文字~15文字までの半角英数)を
登録する仕組みになっている。

やりたいこと:会員IDが、どの文字数でどれくらい登録されているのか、を文字数の昇順で出力したい。※結果によっては、6~15文字の仕様変更を検討したい、とか。

※テーブル名:carp_fanclub
※会員IDカラム名:kaiin_id

SELECT
  length(kaiin_id) as 文字数,
  count(*) as レコード数
FROM
  carp_fanclub
GROUP BY
  length(kaiin_id)
ORDER BY
  length(kaiin_id) asc

※文字数ではなく、バイト数毎に出力したい場合は、”length“を”lengthb“に変えればおk。

がんばれ広島カープ!
目指せクライマックス!!