gpt4 book ai didi

sql - SQL 代码中的 GROUP BY 子句

转载 作者:行者123 更新时间:2023-12-04 04:46:56 28 4
gpt4 key购买 nike

我创建了一个名为 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 |
-----------------------------

最佳答案

没有 ORDER BY ,不保证顺序:

SELECT hostel_num, sum(num_of_stud) as total_students 
FROM HOSTELS
GROUP BY hostel_num
ORDER BY hostel_num;

关于sql - SQL 代码中的 GROUP BY 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18041281/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com