58

これは以前にも尋ねられたことがあるかもしれませんが、無数の検索結果から抜け出すことができません。

正規化されていない 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

4

4 に答える 4

100
select email, count(*) as c FROM orders GROUP BY email
于 2012-04-17T22:13:49.970 に答える
25
SELECT column_name, COUNT(column_name)
FROM table_name
GROUP BY column_name
于 2012-04-17T22:15:04.627 に答える
2

Group by 関数を見てみましょう。

group by 関数が行うことは、特定のフィールドの同様の値をほぼグループ化することです。次に、COUNT 関数を使用して、この値がグループ化された回数を表示できます。

MySQL ドキュメント

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

mysql> SELECT student_name, AVG(test_score)
    ->        FROM student
    ->        GROUP BY student_name;
于 2012-04-17T22:18:11.607 に答える
0
select name, count(*) from table group by name;

やるべきだと思う

于 2012-04-17T22:14:30.143 に答える