MySQL: подсчет уникальных пар значений в строках
Я застрял с проблемой, которую я не знаю, как решить. Вот как выглядит моя таблица myTable:
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| one | varchar(10) | YES | | NULL | |
| two | varchar(10) | YES | | NULL | |
+----------+-------------+------+-----+---------+----------------+
mysql> SELECT * FROM myTable;
+----+-----------------+------------+
| id | one | two |
+----+-----------------+------------+
| 1 | cat | steve |
| 2 | cat | steve |
| 3 | cat | adam |
| 4 | dog | john |
| 5 | dog | adam |
| 6 | dog | alice |
| 7 | mouse | peter |
| 8 | mouse | peter |
| 9 | mouse | peter |
+----+-----------------+------------+
То, что я ищу, - это запрос, который для каждого уникального значения в 'one' дает мне количество уникальных значений в 'two', то есть, что дает мне: dog 3 (три уникальных имени) cat 2 (два уникальных имени) mouse 1 (одно уникальное имя)
Я искал вокруг, но не знаю, как найти правильный ответ, и дошел до:
SELECT one, two, COUNT(two) AS nr FROM myTable GROUP BY one, two ORDER BY one;
Любые предложения высоко ценится! Заранее спасибо.