我正在查找能够从单个表中选择的查询,以便将属性相同的连续记录合并在一起。与group by类似,但不是将每个属性的每次出现分组在一起,而是希望每个连续范围都有一个组。选择具有共同属性的连续记录组?
实施例的表:
+-----+-----+
|order|group|
+-----+-----+
|1 |aaa |
+-----+-----+
|2 |aaa |
+-----+-----+
|3 |bbb |
+-----+-----+
|4 |aaa |
+-----+-----+
|5 |aaa |
+-----+-----+
|6 |aaa |
+-----+-----+
|7 |ccc |
+-----+-----+
|8 |aaa |
+-----+-----+
实施例所期望的结果:
+-----+-------------------+
|group|group_concat(order)|
+-----+-------------------+
|aaa |1,2 |
+-----+-------------------+
|bbb |3 |
+-----+-------------------+
|aaa |4,5,6 |
+-----+-------------------+
|ccc |7 |
+-----+-------------------+
|aaa |8 |
+-----+-------------------+
我不能使用存储的过程。
我有一个模糊的概念,我将需要至少一个级别的表进行排序的嵌套(可能更多),可能不得不使用变量,但不超过。如果您需要更多详细信息,请告诉我。
编辑:用于创建例如查询:
create temporary table tab (
ord int,
grp varchar(8)
);
insert into tab (ord, grp) values
(1, 'aaa'),
(2, 'aaa'),
(3, 'bbb'),
(4, 'aaa'),
(5, 'aaa'),
(6, 'aaa'),
(7, 'ccc'),
(8, 'aaa');
每个字符串只有一个组,恐怕。只要你通过grp对外部查询进行分组,它肯定会以这种方式失败。 – Protected
@保护是的。有一些错误。你能试试我的查询吗? –
很好,谢谢! – Protected