Группировка записей SQL - MySQL

Узнай цену своей работы

Формулировка задачи:

В базу данных выгружаются записи типа:
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
Когда я пытаюсь сгруппировать их в одну (сделать из 3-х, одну уникальную, потому что по факту это одна запись, т.к. у них у всех одинаковый uniqueid), то в поле disposition появляется рандомное значение, например так как ниже
08.06.2016 14:47 3512832994 BUSY 1465379214.827013
Как сделать, чтобы выводило не рандомное значение в поле disposition, а только ANSWERED если оно есть, если его нет то выводим NO ANSWER. Очень надеюсь на вашу помощь! Всем плюсы в карму за помощь!

Решение задачи: «Группировка записей 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;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.857 из 5