Mysql SQL:消除组中的重复链

Mysql SQL:消除组中的重复链,mysql,sql,group-concat,Mysql,Sql,Group Concat,我正在运行一个查询来分析一些用户的组成员ID的变化。 我想确定的是集团成员ID的关键变化(例如2011年8月1日的集团1,2011年8月5日的集团5) 我想出了这个命令: 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的变化。 我想确定的是集团成员ID的关键变化(例如2011年8月1日的集团1,2011年8月5日的集团5)

我想出了这个命令:

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组/日期

我如何从这个查询中删除组/日期
[0-2011-06-17 17:21:57],[0-2011-06-19 16:53:29],[0-2011-06-22 16:41:11]
,因为我已经确定了组成员id=0的第一条记录,其他记录对我来说都无关紧要。。。 换句话说,我希望我的最终结果如下:

imei组/日期

我卡住了。我想在我的团队中使用限制,但显然这是不可能的。还是这样

谢谢您的回答。

请尝试分组方式

  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

子查询解决方案最适合您的需要,但您没有给出数据库的清晰布局,因此我无法为您提供具体的SQL。有4个数据的前缀为0
[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]
。在什么基础上你只想删除3个(正如你在问题中提到的)是的,我想是的。。。嗯,没有必要给出一个清晰的布局,因为我只是从一个表中选择。有4个数据为0,我只想保留第一个数据,因为它使组成员id发生变化(例如从178到0)。基本上,最终的结果应该是:1[178-2011-06-13 18:58:31],[178-2011-09-30 16:43:11],[179-2011-10-01 18:43:11]对不起,我的意思是: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]由于obs的时间永远不一样,所以不同不会有帮助。即使我从concat中排除obs_time,DISTINCT也只会返回组成员id 178一次。然后逐步执行查询是的,我只会执行一次,但我显然有更多行要分析。这只是一个例子。我没有看到内部连接,你是指子选择?
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]
  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