特定の列のすべての一意の値のリストを返すクエリの結果と、それらが繰り返される回数を保存しようとしています。
SELECT col_name, COUNT(*) AS 'total' FROM dataTable GROUP BY col_name;
これは次のようなものを返します。
col_name
- レコードA
- レコードB
- レコードC
- レコードD
- 記録する...
合計
- 39
- 91817
- 982027
- 211872
- 256...
それはうまく機能しており、まさに私が必要としているものです。しかし、結果を別のテーブル (例: ) に保存する必要があるcountTable
ため、毎回クエリを実行する必要がなく、インデックスを作成できます...など。
countTable
ここでの結果とまったく同じ構造を持つとしましょう。2 つの列:name
とcount
元の結果と同じ型です。
これはおそらくいくつかの笑いを引き起こすでしょうが、現在、これは近いと感じています:
INSERT INTO countTable (name, count) SELECT col_name, total FROM
(SELECT col_name, COUNT(*) AS 'total' FROM dataTable GROUP BY col_name);
しかし、私はエラーが発生します:ERROR 1248 (42000): Every derived table must have its own alias
このクエリを正しくラップする方法がわかりません。または、別のクエリをAS
どこかで使用する必要があるかどうかもわかりません。
どんな助けでも大歓迎です!! ありがとう