Порядок в 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 или постоянно увеличивается (но все же в порядке размера).

В таблице также есть первичный ключ автоматического идентификатора, если это поможет.

---- Благодаря @shA.t этот ответ работает отлично. Я добавил простое объединение таблиц, которое также работает:

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

person Tom Malkin    schedule 12.08.2015    source источник
comment
Какой запрос вы пробовали до сих пор, и каковы типы двух столбцов?   -  person Tim Biegeleisen    schedule 12.08.2015
comment
Предварительные исследования раздела, ранга и т. Д., Но они, похоже, не работают для динамического диапазона в Col1 (как я вижу, я, вероятно, ошибаюсь). Типы данных — целые числа.   -  person Tom Malkin    schedule 12.08.2015


Ответы (1)


Я думаю, вы можете использовать такой запрос:

ДЕМО SQLFIDDLE

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;
person shA.t    schedule 12.08.2015
comment
Я тоже удалю свой комментарий. И я добавляю собственный sqlfiddle для образца данных OP - person Juan Carlos Oropeza; 12.08.2015