group by 語(yǔ)句用于將數(shù)據(jù)按指定的列或列組合分組,并對(duì)每個(gè)組執(zhí)行聚合函數(shù)(如求和、計(jì)數(shù)、求平均值)來(lái)匯總數(shù)據(jù)。其語(yǔ)法為:select 列1, 列2, …from 表名group by 分組列
SQL 中的 GROUP BY 語(yǔ)句
GROUP BY 語(yǔ)句用于將數(shù)據(jù)分組,并將相同組中的記錄聚合在一起。通過(guò)將數(shù)據(jù)分為不同的組,它可以幫助我們匯總信息、識(shí)別模式并簡(jiǎn)化結(jié)果。
語(yǔ)法
<code>SELECT 列1, 列2, ... FROM 表名 GROUP BY 分組列</code>
登錄后復(fù)制
其中:
列1
、列2
、… 是要檢索的列。
表名
是要分組的表。
分組列
是要用于分組的列或列的組合。
功能
GROUP BY 語(yǔ)句根據(jù) 分組列
的值將數(shù)據(jù)分組,然后針對(duì)每個(gè)組執(zhí)行聚合函數(shù)(如 SUM()
、COUNT()
、AVG()
),以匯總數(shù)據(jù)。
示例
考慮一個(gè)包含學(xué)生成績(jī)的表:
<code>| 學(xué)號(hào) | 學(xué)生姓名 | 數(shù)學(xué)成績(jī) | 語(yǔ)文成績(jī) | |---|---|---|---| | 1 | 李華 | 90 | 85 | | 2 | 王強(qiáng) | 85 | 90 | | 3 | 李明 | 95 | 80 | | 4 | 張偉 | 80 | 95 |</code>
登錄后復(fù)制
如果我們想按學(xué)生姓名分組并計(jì)算每位學(xué)生的平均數(shù)學(xué)成績(jī),可以使用以下 GROUP BY 語(yǔ)句:
<code>SELECT 學(xué)生姓名, AVG(數(shù)學(xué)成績(jī)) AS 平均數(shù)學(xué)成績(jī) FROM 學(xué)生成績(jī)表 GROUP BY 學(xué)生姓名</code>
登錄后復(fù)制
結(jié)果將是:
<code>| 學(xué)生姓名 | 平均數(shù)學(xué)成績(jī) | |---|---| | 李華 | 87.5 | | 王強(qiáng) | 85.0 | | 李明 | 87.5 | | 張偉 | 82.5 |</code>
登錄后復(fù)制