如何对现有表行进行分组,然后按顺序应用

时间:2013-01-08 19:11:11

标签: mysql group-by sql-order-by

我想对列值进行分组,然后按升序对另一列中的值进行排序。我不介意是否必须创建新表。有人可以帮我解决这个疑问吗?数据库是MySQL。

非常感谢!

请在此处查看我的示例数据。

SID | Area-No |分区号|

1 ------- 5 ----------- 1 ------ |

2 ------- 4 ----------- 1 ------ |

3 ------- 3 ----------- 2 ------ |

9 ------- 5 ----------- 2 ------ |

5 ------- 6 ----------- 1 ------ |

7 ------- 9 ----------- 3 ------ |

4 ------- 1 ----------- 9 ------ |

6 ------- 1 ----------- 7 ------ |

8 ------- 2 ----------- 1 ------ |

10 ------ 2 ----------- 5 ------ |

11 ------ 2 ----------- 6 ------ |

12 ------ 2 ----------- 2 ------ |

每个SID都有一个Area-No。有1-20 +个区域。每个区域有1-20个子区域。我想按区号对SID进行分组,以便重新排列表(或者可以创建新表),其中前几行仅显示区域1和区域1下的所有子区域。然后行显示Area2和所有子区域2下的区域,依此类推。如果SID订单发生变化,我不介意。

输出将是:

SID | Area-No |分区号|

6 ------- 1 ----------- 7 ------ |

4 ------- 1 ----------- 9 ------ |

8 ------- 2 ----------- 1 ------ |

12 ------ 2 ----------- 2 ------ |

10 ------ 2 ----------- 5 ------ |

11 ------ 2 ----------- 6 ------ |

3 ------- 3 ----------- 2 ------ |

2 ------- 4 ----------- 1 ------ |

1 ------- 5 ----------- 1 ------ |

9 ------- 5 ----------- 2 ------ |

5 ------- 6 ----------- 1 ------ |

7 ------- 9 ----------- 3 ------ |

选择将记录返回给我。但我想安排表本身,而不是从中选择记录。我不介意是否必须创建新表。

再次感谢!!

2 个答案:

答案 0 :(得分:0)

简单查询。

SELECT column_name 
FROM table_name  
GROUP BY column_name 
ORDER BY column_name 

答案 1 :(得分:0)

我能够解决这个问题。我只需要从我想要的列开始排序,这里是Area和subArea。

insert into temp select * from stuTable order by Area, subArea;

感谢您的所有答案!