sqlite中的复杂行排序

sqlite中的复杂行排序,sqlite,sorting,Sqlite,Sorting,对于一个市场研究项目,我在sqlite数据库中有一个表,用于指定问题的确切位置。对于不同的受访者群体,问题可能会被问到,也可能不会被问到,或者在不同的位置被问到。该位置由每组的连续数字表示 要求对该表进行排序,以便在顺序允许的情况下将相同的问题分组。换句话说:如果先问组1,然后问组2,然后问组3,然后再问组2,那么应该先显示组1的前三行,然后显示组2的第一行 表: group | question | position g1 | q1 | 1 g1 | q2

对于一个市场研究项目,我在sqlite数据库中有一个表,用于指定问题的确切位置。对于不同的受访者群体,问题可能会被问到,也可能不会被问到,或者在不同的位置被问到。该位置由每组的连续数字表示

要求对该表进行排序,以便在顺序允许的情况下将相同的问题分组。换句话说:如果先问组1,然后问组2,然后问组3,然后再问组2,那么应该先显示组1的前三行,然后显示组2的第一行

表:

group | question | position
  g1  |     q1   |    1
  g1  |     q2   |    2
  g1  |     q3   |    3
  g1  |     q4   |    4
  g1  |     q5   |    5
  g1  |     q8   |    6
  g2  |     q2   |    1
  g2  |     q3   |    2
  g2  |     q7   |    3
  g2  |     q8   |    4
  g2  |     q1   |    5
它应该是什么样子的:

group | question | position
  g1  |     q1   |    1
  g1  |     q2   |    2
  g2  |     q2   |    1
  g1  |     q3   |    3
  g2  |     q3   |    2
  g1  |     q4   |    4
  g1  |     q5   |    5
  g2  |     q7   |    3
  g1  |     q8   |    4
  g2  |     q8   |    6
  g2  |     q1   |    5

我尝试了各种各样的方法和团体,但都不能解决问题。由于数据库是通过python访问的,因此我可以在那里执行排序,但我强烈倾向于提取已排序的数据。

描述不清楚。你如何确定任何一个问题的立场?您如何确定某个问题的排序位置错误?@CL该位置由每组的“位置”列分别确定。g1将首先看到q1,然后是q2,以此类推。g2从q2开始,以q1结束。错误的排序出现在两种情况下:首先,原始流未被保留,即在最终表格中,每个组的“位置”列中的数字必须增加。第二,如果可能,同样的问题需要分组。排序表从g1-q1开始,因为它是g1的第一个问题,而g2不要求q1。两组都要求q2,因此将其分组在第2行和第3行中。该信息属于问题。第二个表没有按照您的描述正确排序。描述不清楚。你如何确定任何一个问题的立场?您如何确定某个问题的排序位置错误?@CL该位置由每组的“位置”列分别确定。g1将首先看到q1,然后是q2,以此类推。g2从q2开始,以q1结束。错误的排序出现在两种情况下:首先,原始流未被保留,即在最终表格中,每个组的“位置”列中的数字必须增加。第二,如果可能,同样的问题需要分组。排序表从g1-q1开始,因为它是g1的第一个问题,而g2不要求q1。两组都要求q2,因此将其分组在第2行和第3行中。该信息属于问题。第二个表没有按照您的描述正确排序。