SQL: устранение цепочек дубликатов в GROUP_CONCAT - PullRequest
0 голосов
/ 03 октября 2011

Я выполняю запрос для анализа изменений в Group_member_ID для некоторых пользователей.Я хотел бы выделить ключевые вариации в group_member_ids (например, Group1 от 01.08.2011, Group5 от 05.08.2011).

Я пришел с этой командой:

select id, 
CAST(group_concat(concat('[',group_member_id,'-',from_unixtime(obs_time),']') order by obs_time) as CHAR(10000) CHARACTER SET utf8) 
from Table1 
where id=1

РЕЗУЛЬТАТ:

imei group / date

1[178-2011-06-13 18:58:31],[0-2011-06-13 19:20:56],[0-2011-06-17 17:21:57],[0-2011-06-19 16:53:29],[0-2011-06-22 16:41:11],[178-2011-09-30 16:43:11],[179-2011-10-01 18:43:11]

Как исключить группу / дату [0-2011-06-17 17:21:57],[0-2011-06-19 16:53:29],[0-2011-06-22 16:41:11] из этого запроса, поскольку я уже определил первыйзапись для group_member_id = 0, а остальные не имеют значения для меня ... Другими словами, я бы хотел, чтобы мой конечный результат выглядел следующим образом:

imei group / date

1[178-2011-06-13 18:58:31],[0-2011-06-13 19:20:56],[178-2011-09-30 16:43:11],[179-2011-10-01 18:43:11]

Я застрял.Я думал об использовании LIMIT в моей group_concat, но, видимо, это невозможно.Или это так?

Спасибо за ваши ответы.

1 Ответ

0 голосов
/ 03 октября 2011

ПОПРОБУЙТЕ с ГРУППА BY

  SELECT id, CAST( GROUP_CONCAT ( 
                                 CONCAT('[',group_member_id,'-',from_unixtime(obs_time),']') 
                                 ORDER BY obs_time ) as CHAR(10000) CHARACTER SET utf8)
                           AS group_set  
  FROM table1 
  WHERE id=1
  GROUP BY group_member_id
...