首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL 統計查詢與建立新表:GROUP BY、HAVING、COMPUTE 與 SELECT INTO

     編輯:關於SqlServer

一、統計查詢

透過集合函數(如 SUM、AVG、COUNT)、行集合函數、GROUP BY 及 COMPUTE 子句,可對查詢結果進行多層次統計分析。

1. 標量統計

不分組,直接對所有符合條件的資料統計,僅產生單一結果列:

SELECT 'average price' = AVG(price)
FROM titles
WHERE type = 'business';

2. GROUP BY 子句

依指定欄位分組統計,SELECT 清單中非集合函數欄位必須全部出現在 GROUP BY 中。

SELECT type, AVG(price) AS 'average price'
FROM titles
GROUP BY type;

3. HAVING 子句

對分組後的統計結果進一步篩選,類似 WHERE 但作用於群組。可使用集合函數與邏輯運算子(最多 128 條件)。

HAVING 範例
HAVING 排除單一群組

4. GROUP BY ALL 選項

搭配 WHERE 使用時,ALL 會列出所有群組,即使不符合 WHERE 條件的群組也會顯示(統計值為 NULL)。

GROUP BY ALL 範例

5. COMPUTE 子句

顯示詳細資料與統計摘要,需搭配 ORDER BY 使用,COMPUTE BY 欄位須與 ORDER BY 一致或為其子集。

COMPUTE 語法

二、利用查詢結果建立新表

SELECT ... INTO 可將查詢結果寫入新表,新表結構依 SELECT 清單欄位自動建立。

SELECT * INTO #new_publishers
FROM publishers
WHERE country = 'USA';

此處 #new_publishers 為暫存表(臨時表),僅在目前連線有效。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved