web-dev-qa-db-ja.com

MySQLの特定の列に値が表示される回数をカウントする

これはおそらく以前に尋ねられたでしょうが、無数の検索結果をたどることはできません。

正規化されていないMySQLテーブルがある場合、列xの各個別値が使用された回数をカウントするために最も最適化されたクエリは何ですか?

例えばを含むテーブルを考える

_mike
mary
mike
_

次のような結果を返します。

_mike 2
mary 1
_

MySQLのドキュメントから、countは_GROUP BY_で使用できる集約関数であるように見えますが、これは私が望むことをしていません(_GROUP BY_、各行の出現数ではありません。つまり、これは機能しませんSELECT count(email) as c FROM orders GROUP BY email

35
select email, count(*) as c FROM orders GROUP BY email
62
Nesim Razon
SELECT column_name, COUNT(column_name)
FROM table_name
GROUP BY column_name
17
garnertb

Group by functionを見てください。

Group by関数が行うことは、特定のフィールドの類似した値をかなりグループ化することです。次に、COUNT関数を使用してこの値がグループ化された回数を表示できます。

MySQLドキュメント

MySQLで定義された他の多数の関数とともにgroup by関数を使用することもできます(上記のリンクを参照)。

mysql> SELECT student_name, AVG(test_score)
    ->        FROM student
    ->        GROUP BY student_name;
1
Erwald
select name, count(*) from table group by name;

私はそれをすべきだと思います

0
davethecoder