我有两个查询,输出是相同的。但是,差异只是结果中的顺序。请帮助我理解这一点。
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
在第一个输出中,文员排在第一位,在第二个输出中,文员排在最后。
答案 0 :(得分:2)
不能保证使用相等的键对行进行排序-数据库可以自由地以它认为方便的任何顺序交付这些行。如果要保持一致的顺序,则必须在JOB
中包含ORDER BY
字段,因此
...
ORDER BY 1, 2
在两种情况下都应该这样做。
好运。