z1:
SELECT tab1.Группа, tab1.Предмет, tab1.Час
FROM tab1 LEFT JOIN tab1 AS tab1_1 ON
(tab1.Час = tab1_1.Час+1) AND (tab1.Предмет = tab1_1.Предмет) AND (tab1.Группа = tab1_1.Группа)
WHERE tab1_1.Группа Is Null
ORDER BY tab1.Группа, tab1.Час
z2:
SELECT a.Группа, a.Предмет,
(SELECT Count(*) FROM z1 AS b WHERE (b.Группа = a.Группа) AND (b.Час <= a.Час)) AS Порядок
FROM z1 AS a
ORDER BY a.Группа, a.Час