我正在运行查询来分析某些用户的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,但显然这是不可能的。或者是吗?
感谢您的回答。
答案 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