2

したがって、データベースの列 A に何千ものレコードがあります。

アルファベットの各文字とすべて 1 桁の数字で始まるものがいくつあるかを知りたいです。

したがって、カウントとそれに関連付けられた文字が必要です。また、2 つの英数字の組み合わせ (aa ab ac ad ae など) とその数もすべて表示したいと考えています。

また、3文字や4文字などで。

4

1 に答える 1

13

通常GROUP BY、 のような式を使用できます。これにより、任意の式でグループ化された集計LEFT(columnname, 1)を実行できます。COUNT()使用する最も理想的な部分文字列関数は、RDBMS によって異なる場合があります。

SELECT
  UPPER(LEFT(columnname, 1)) AS first_char,
  COUNT(*)
FROM yourtable
GROUP BY UPPER(LEFT(columnname, 1))
ORDER BY first_char ASC

同様に、2文字の一致を取得するには

SELECT
  UPPER(LEFT(columnname, 2)) AS first_2char,
  COUNT(*)
FROM yourtable
GROUP BY UPPER(LEFT(columnname, 2))
ORDER BY first_2char ASC

GROUP BY一部の RDBMSでは、簡略化された のように、完全な式ではなく、列のエイリアスを使用できますGROUP BY first_char

Ab, AB, ab, aB大文字と小文字を区別する照合を使用している場合に個別の一致が得られないように、大文字にしていることに注意してください。(ただし、SQL Server はデフォルトで大文字と小文字を区別しない照合を使用すると思います)

于 2012-11-21T19:28:45.943 に答える