分組(group by)
group_by的意思是根據by對數據按照對應字段進行分組,所謂的分組就是將一個“數據集”划分成若干個“小區域”,然后針對若干個“小區域”進行數據處理。
select 查詢字段 from 表名 group by 分組字段
解析:簡單點來說就是以 “分組字段” 為依據進行聚合操作,比如:很多門課和很多個學生,你如果想取得每個學生上了多少門客,那么我就以每個學生分組 ,來求課程數
示例:課程表Course
select StudentId,Count(*)CourseNumber from Course GROUP BY StudentId
解析:首先我以學生ID 進行的分組,那么所有學生ID相同的數據都是一個組,然后我在組內進行取行數【count(*)】,然后的給個別名CourseNumber
這里要注意使用使用了group by 就不能用*,只能使用group by的字段,因為select的語句執行的先后順序是先group by 再select ,這個時候其實數據已經分組了,所以你的“查詢字段”里面只能出現【分組字段】和【分組聚合函數】
select 字段 from 表名 where 過濾條件 group by 字段 having 過濾條件
解析:having是分組之后再進行條件篩選的關鍵詞,和where不同的是 where條件在分組之前執行和having條件在分組之后執行