我创建了一个名为的表HOSTEL(hostel_num NUMBER, num_of_stud NUMBER)
,并将值插入为:
--------------------------
hostel_num | num_of_stud |
--------------------------
1001 | 124 |
1001 | 234 |
1002 | 97 |
1002 | 134 |
1003 | 234 |
1004 | 123 |
1004 | 89 |
1001 | 67 |
--------------------------
当我将GROUP BY
命令应用为:
SELECT hostel_num, sum(num_of_stud) as total_students
FROM HOSTELS
GROUP BY hostel_num;
,我得到的结果是:
-----------------------------
hotel_num | total_students |
-----------------------------
1003 | 234 |
1001 | 425 |
1002 | 231 |
1004 | 212 |
-----------------------------
现在,我的问题是:为什么hostel_num 1003
排在首位?它不应该出现在第 3 行吗?这种命令背后的逻辑是什么?
我知道,该GROUP BY
子句合并了重复的列值并将它们组合在一起。
我的疑问是:它如何决定显示这些值的顺序,就像这里一样,我期待这样的输出:
-----------------------------
hotel_num | total_students |
-----------------------------
1001 | 425 |
1002 | 231 |
1003 | 234 |
1004 | 212 |
-----------------------------