1. 程式人生 > >SQL Server彙總資料之聚合函式與分組

SQL Server彙總資料之聚合函式與分組


在SQL查詢的邏輯流程中,聚合函式是在From子句和Where子句之後執行的,這

意味著無須使用子查詢就可以在彙總(使用聚合函式)前對資料進行組裝和篩選。

基本聚合(函式)

聚合函式

支援的資料型別

描述

sum( )

Numeric

計算指定列中所有非空值的總和

avg()

numeric

計算指定列中所有非空值的平均值

min()

numeric、string、datetime

返回指定列中最小的數字或根據排序規則返回最前面的日期或字串

max()

numeric、string、datetime

返回指定列中最大的數字或根據排序規則返回最前面的日期或字串

count( [distinct] *)

任何基於行的資料型別

計算結果集中的總行數,

count_big( [distinct] *)

任何基於行的資料型別

與count類似,但是其返回型別是binint比count大

使用一般聚合函式時的規則:

1、由於現在SQL返回資料庫中的資訊,而不是建立一個由行組成的記錄集,因此查詢包含

聚合函式時,每一列(列列表、表示式、或order by中的列)都必須參與聚合函式的計算。

2、聚合選項distinct的作用與Select distinct 相同,但聚合選項中的distinct消除重複的

值而不是重複的行。

注:count( distinct * )是非法的,必須指定特定的列。

count(*)計算資料集的總行數,但count(clomun名)計算在指定列中有值的總行數

由於聚合函式屬於表示式,因此結果中沒有列名,最好指定列名