Количество без повторений в одном из столбцов - MySQL
Формулировка задачи:
Имеем таблицу менеджер - входящий номер:
Нужно получить количество
| manager number |
| user1 7972207 |
| user2 8581041 |
| user3 3642345 |
| user1 8089142 |
| user2 7972207 |
| user2 0297188 |
| user1 8089142 |
| user3 3642345 |
| user4 3642345 |
уникальных
звонков по менеджерам. Но уникальных звонков не у каждого менеджера, а уникальных звонков вообще.| user1 2 |
| user2 2 |
| user3 1 |
| user4 0 |
Решение задачи: «Количество без повторений в одном из столбцов»
textual
Листинг программы
SELECT `manager`, COUNT(*) AS `calls` FROM ( SELECT * FROM ( SELECT `manager`, `number ` FROM `таблица` ORDER BY `время_звонка` ASC ) t1 GROUP BY `number ` ) t2 GROUP BY `manager`
Объяснение кода листинга программы
Код выбирает уникальные номера телефонов в столбце number из таблицы таблица, которые звонят на сервер, и подсчитывает количество звонков от каждого менеджера.
SELECT * FROM ( SELECTmanager,numberFROMтаблицаORDER BYвремя_звонкаASC ) t1GROUP BYnumber `SELECTmanager, COUNT(*) AScallsFROM ( SELECT * FROM ( SELECTmanager,numberFROMтаблицаORDER BYвремя_звонкаASC ) t1 GROUP BYnumber) t2GROUP BYmanager` В результате получается список менеджеров и количество звонков от каждого из них.