複数カラムのGROUP BY

GROUP BYは、複数のカラムを組み合わせてグループ化も出来る。

7.2. テーブル式

postgresdb1=# SELECT * FROM  profile;
  name  | address | age
--------+---------+-----
 Taro   | Tokyo   |  20
 Sato   | Tokyo   |  20
 Miki   | Tokyo   |  20
 Hanako | Tokyo   |  30
 Keiko  | Tokyo   |  30
 Jiro   | Osaka   |  20
 Sho    | Osaka   |  20
 Aya    | Osaka   |  20
 Ken    | Osaka   |  30
 Mai    | Osaka   |  30
 Saburo | Nagoya  |  20
 Rika   | Nagoya  |  20
 Goro   | Nagoya  |  30
 Yumi   | Nagoya  |  30
(14 行)

postgresdb1=# SELECT address, age, COUNT(*)  
FROM profile
GROUP BY address, age;
 address | age | count
---------+-----+-------
 Osaka   |  20 |     3
 Tokyo   |  20 |     3
 Nagoya  |  30 |     2
 Tokyo   |  30 |     2
 Osaka   |  30 |     2
 Nagoya  |  20 |     2
(6 行)

postgresdb1=#

addressとageの組み合わせでグループ化している。