Группировка записей SQL - MySQL
Формулировка задачи:
В базу данных выгружаются записи типа:
Когда я пытаюсь сгруппировать их в одну (сделать из 3-х, одну уникальную, потому что по факту это одна запись, т.к. у них у всех одинаковый uniqueid), то в поле disposition появляется рандомное значение, например так как ниже
Как сделать, чтобы выводило не рандомное значение в поле disposition, а только ANSWERED если оно есть, если его нет то выводим NO ANSWER. Очень надеюсь на вашу помощь! Всем плюсы в карму за помощь!
calldate | src | disposition | uniqueid |
08.06.2016 14:46 | 3512111111 | NO ANSWER | 1465379214.827013 |
08.06.2016 14:47 | 3512111111 | BUSY | 1465379214.827013 |
08.06.2016 14:47 | 3512111111 | ANSWERED | 1465379214.827013 |
08.06.2016 14:47 | 3512832994 | BUSY | 1465379214.827013 |
Решение задачи: «Группировка записей SQL»
textual
Листинг программы
SELECT calldate, src, ifnull(disposition, 'NO ANSWER') AS disposition, t.uniqueid FROM (SELECT uniqueid, MAX(calldate) AS calldate, src FROM `table` GROUP BY uniqueid, src) AS t LEFT JOIN (SELECT uniqueid, disposition FROM `table` WHERE disposition = 'ANSWERED') AS t1 ON t.uniqueid = t1.uniqueid;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д