SQL:消除GROUP_CONCAT中的重复链

时间:2011-10-03 09:42:11

标签: mysql sql group-concat

我正在运行查询来分析某些用户的Group_member_ID变体。 我想要确定的是group_member_ids的关键变体(例如2011年8月1日的Group1,2011年5月5日的Group5)。

我想出了这个命令:

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]

我被困住了。我想在我的group_concat中使用LIMIT,但显然这是不可能的。或者是吗?

感谢您的回答。

1 个答案:

答案 0 :(得分:0)

使用GROUP 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