У меня есть два запроса, и результат тот же. Однако разница заключается только в последовательности в результате. Пожалуйста, помогите мне понять это.
select distinct (count(*) over (partition by job)) as Lists
,job
from emp
order by LISTS;
1 PRESIDENT
2 ANALYST
3 DEVELOPER
3 MANAGER
4 CLERK
4 SALESMAN
select count(*),job
from emp
group by job
order by count(*);
1 PRESIDENT
2 ANALYST
3 DEVELOPER
3 MANAGER
4 SALESMAN
4 CLERK
В первом выводе Клерк идет первым, а во втором выводе Клерк идет в конце.
вы должны добавить правильный образец данных, чтобы мы могли оценить ваш результат .. ..
@scaisEdge - вы можете попробовать запросы OP практически к любой таблице (например, SCOTT.EMP), вы заметите тот же результат.
Порядок строк с одинаковыми ключами не гарантируется — база данных может доставлять эти строки в любом удобном для себя порядке. Если вы хотите иметь последовательный порядок, вы должны включить поле JOB
в ORDER BY
, поэтому
...
ORDER BY 1, 2
должен сделать это в обоих случаях.
Если явно указанный порядок не является случайным. Вы заказываете по количеству, а не по заданию, поэтому порядок заданий является случайным, когда количество одинаково. Вам нужно заказать по заданию (или какому-то другому полю), если вы хотите явно упорядочить задание.