-3

列の値をグループ化し、別の列の値を昇順に並べ替えたいと思います。新しいテーブルを作成する必要があるかどうかは気にしません。誰でもこのクエリで私を助けてもらえますか? データベースはMySQLです。

本当にありがとう!

私のサンプルデータはこちらをご覧ください。

シド | エリア番号 | サブエリア番号|

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 にはエリア番号があります。1 ~ 20 以上のエリアがあります。各エリアには 1 ~ 20 以上のサブエリアがあります。SID をエリア番号でグループ化したいので、テーブルが再配置されます (または、新しいテーブルが作成される可能性があります)。最初の数行には、エリア 1 のみと、エリア 1 の下のすべてのサブエリアが表示されます。次に、行にエリア 2 とすべてのサブエリアが表示されます。エリア 2 の下のエリアなど。SID の順序が変更されてもかまいません。

出力は次のようになります。

シド | エリア番号 | サブエリア番号|

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------|

選択するとレコードが返されます。しかし、テーブルからレコードを選択するのではなく、テーブル自体を配置したいのです。新しいテーブルを作成する必要があるかどうかは気にしません。

再度、感謝します!!

4

2 に答える 2

0

その単純なクエリ。

SELECT column_name 
FROM table_name  
GROUP BY column_name 
ORDER BY column_name 
于 2013-01-08T19:24:46.423 に答える
0

これで解決できました。必要な列、ここでは Area と subArea による順序付けから始めなければなりませんでした。

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

ご回答ありがとうございます。

于 2013-01-11T14:22:28.353 に答える