在SQL查詢中GROUP BY的含義是什么?

在SQL查詢中GROUP BY的含義是什么?

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教程

? 版權聲明
THE END
喜歡就支持一下吧
點贊7 分享