在 Access 中订购 SQL

Ordering in Access SQL

我不知道如何在 Access 中对以下数据进行排序 SQL:

Col1     Col2
1        1
1        2
1        3
2        4
2        5
2        6
3        7
3        8
3        9

它在 Col2 中获取最低值,其中 Col1 = 1,然后在 Col2 中获取最低值,其中 Col1 = 2 等等,导致排序数据:

Col1     Col2
1        1
2        4
3        7
1        2
2        5
3        8
1        3
2        6
3        9

Col1 的范围可以从 1 到任意数字,Col2 不是从 1 开始,或者一直递增(但仍然按大小顺序排列)。

如果有帮助,table 还有一个自动 ID 主键。

---- 感谢@shA.t 这个答案非常有效。我添加了一个简单的 table 连接,它也可以工作:

SELECT t1.Col1, t1.Col2 FROM 
(SELECT Table1.Col1, Table2.Col2 FROM Table2 INNER JOIN Table1 ON Table2.ID = Table1.ID) t1

INNER JOIN 

(SELECT Table1.Col1, Table2.Col2 FROM Table2 INNER JOIN Table1 ON Table2.ID = Table1.ID) t2

ON t1.Col1 = t2.Col1 and t1.Col2 >= t2.Col2
Group by t1.Col1, t1.Col2
ORDER BY Count(t2.Col2), t1.Col1

我想你可以使用这样的查询:

SQLFIDDLE DEMO

SELECT t1.Col1, t1.Col2
FROM t t1
    JOIN t t2 ON t1.Col1 = t2.Col1 and t1.Col2 >= t2.Col2
Group by t1.Col1, t1.Col2
ORDER BY Count(t2.Col2), t1.Col1;