在sql查詢中GROUP BY的含義是什么?
在SQL查詢中GROUP BY的含義是根據指定的規則對數據進行分組,其作用是將查詢結果按某一列或多列的值進行分組,值相等的為一組,GROUP BY語句一般是和聚合函數進行配合使用。
Group By 和 Order By
select 類別, sum(數量) AS 數量之和 from A group by 類別 order by sum(數量) desc
在Access中不可以使用“order by 數量之和 desc”,但在SQL Server中則可以。
Group By中Select指定的字段限制
select 類別, sum(數量) as 數量之和, 摘要 from A group by 類別 order by 類別 desc
執行后會提示下錯誤,如下圖。這就是需要注意的一點,在select指定的字段要么就要包含在Group By語句的后面,作為分組的依據;要么就要被包含在聚合函數中。
Group By All
select 類別, 摘要, sum(數量) as 數量之和 from A group by all 類別, 摘要
中則可以指定“摘要”字段,其原因在于“多列分組”中包含了“摘要字段”,其執行結果如下表
“多列分組”實際上就是就是按照多列(類別+摘要)合并后的值進行分組,示例4中可以看到“a, a2001, 13”為“a, a2001, 11”和“a, a2001, 2”兩條記錄的合并。
SQL Server中雖然支持“group by all”,但microsoft SQL Server 的未來版本中將刪除 GROUP BY ALL,避免在新的開發工作中使用 GROUP BY ALL。Access中是不支持“Group By All”的,但Access中同樣支持多列分組,上述SQL Server中的SQL在Access可以寫成
select 類別, 摘要, sum(數量) AS 數量之和 from A group by 類別, 摘要
推薦教程:《MySQL教程》