group by 查詢原理

2021-10-09 22:07:06 字數 1109 閱讀 4465

select classes_id, count(name)as number from stu group by classes_id
查詢結果是

那麼臨時表在**呢?

1、分析一下查詢語句,需要查詢表中的班級名稱以及每個班級對應的學生的數量。

首先,sql語句會產生第一張臨時表,找到所有的classid

select distinct classes_id  from stu
臨時表1

2、然後根據臨時表1去分別乙個個查

select * from stu where classes_id = 2
臨時表2

3、讀取你需要得到的資訊,比如這裡需要得到

classes_id, count(name)as number
那麼,group by會拿到臨時表1、2、3、4、等等的數量來填入最終**。

group by分組查詢小結

下面這樣查的話只能查詢到一條記錄 select id groupcode,hotelcode,accountno,reservephone,reservename,roomno,roomtype from res roomresource where id in select min id from...

關於group by的用法 原理

寫在前面的話 用了好久group by,今天早上一覺醒來,突然感覺group by好陌生,總有個筋別不過來,為什麼不能夠select from table group by id,為什麼一定不能是 而是某乙個列或者某個列的聚合函式,group by 多個字段可以怎麼去很好的理解呢?不過最後還是轉過來...

關於group by的用法 原理

正文開始 先來看下表1,表名為test 表1執行如下sql語句 selectnamefromtest groupbyname 你應該很容易知道執行的結果,沒錯,就是下表2 表2可是為了能夠更好的理解 group by 多個列 和 聚合函式 的應用,我建議在思考的過程中,由表1到表2的過程中,增加乙個...