group by
もどる
select 表示するカラム名 from テーブル名 group by グルーピングするカラム名;

グルーピングとは、重複して登録されたレコードをひとつにまとめて表示すること。
登録しているデータに影響はない。
count()関数を使うと、グルーピングした際の重複するレコード数を数える。
この数を検索条件として使うこともできる。

実行例

グルーピングしない場合
mysql> select * from linklog;
+---------------------+--------------------+----------+---------+
| date                | refer              | agent    | host    |
+---------------------+--------------------+----------+---------+
| 2005-10-03 17:43:01 | www.yahoo.co.jp    | Mozila   | yahoobb |
| 2005-10-03 17:44:06 | www.msn.co.jp      | IE       | proxy   |
| 2005-10-03 17:44:54 | www.msn.co.jp      | Mozila   | ispA    |
| 2005-10-03 17:45:25 | www.excite.co.jp   | FireFox  | ispB    |
| 2005-10-03 17:45:52 | www.yahoo.co.jp    | Mozila   | proxy   |
| 2005-10-03 17:47:02 | www.livedoor.co.jp | Netscape | so-net  |
| 2005-10-03 17:48:39 | www.google.co.jp   | Sleipnir | usen    |
| 2005-10-03 17:49:11 | www.yahoo.co.jp    | Mozila   | yahoobb |
+---------------------+--------------------+----------+---------+
8 rows in set

referでグルーピングした場合
mysql> select refer from linklog group by refer;
+--------------------+
| refer              |
+--------------------+
| www.excite.co.jp   |
| www.google.co.jp   |
| www.livedoor.co.jp |
| www.msn.co.jp      |
| www.yahoo.co.jp    |
+--------------------+
5 rows in set

referでグルーピングして、集計した数を表示する場合
mysql> select refer,count(*) from linklog group by refer;
+--------------------+----------+
| refer              | count(*) |
+--------------------+----------+
| www.excite.co.jp   |        1 |
| www.google.co.jp   |        1 |
| www.livedoor.co.jp |        1 |
| www.msn.co.jp      |        2 |
| www.yahoo.co.jp    |        3 |
+--------------------+----------+
5 rows in set

referでグルーピングして、集計した数を検索条件として表示する場合(集計数が2以上のグループを表示)
mysql> select refer,count(*) from linklog group by refer having count(*) >= 2;
+--------------------+----------+
| refer              | count(*) |
+--------------------+----------+
| www.msn.co.jp      |        2 |
| www.yahoo.co.jp    |        3 |
+--------------------+----------+
2 rows in set