在 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
我想你可以使用这样的查询:
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;