MYSQL - Выберите количество всех строк, которые являются дубликатами в 1 столбце и различаются в другом столбце - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть таблица MYSQL с именем transactions.addresses, которая содержит столбцы username и address. Когда пользователь создает транзакцию на моем веб-сайте, он регистрируется в моей базе данных, как показано ниже

|username|    address   |
--------------------------
| jeremy | a33bfd019    |
| jeremy | b583ffs9a    |
| ben    | c09123jca    |

Как выполнить запрос, который покажет количество всех полей address, которые найдены более чем один раз в таблице и имеют более 1 разных имен пользователей, связанных с ними в базе данных? Другими словами, я хочу увидеть, сколько разных пользователей использовали одно и то же значение адреса в своих транзакциях. Используя приведенный ниже набор данных в качестве примера:

|username|    address   |
--------------------------
| jeremy | a33bfd019    |
| jeremy | b583ffs9a    |
| jeremy | b583ffs9a    |
| ben    | c09123jca    |
| ben    | b583ffs9a    |

Я ожидаю увидеть следующий результат:

|address   | count  |
--------------------------
| b583ffs9a| 2      |
| c09123jca| 1      |
| a33bfd019| 1      |

адрес b583ffs9a должен иметь число 2, потому что 2 пользователя использовал этот адрес.

1 Ответ

2 голосов
/ 09 апреля 2020

Как прокомментировал Barmar, вы можете просто агрегировать по address и считать username в каждой группе:

select address, count(distinct username) no_usernames
from mytable
group by address
...